Linux Note 15 文本处理

基本关键字搜索

grep keyord
grep Minecraft
find / -user video 2> errorReport | grep video

参数

-i 不区分大小写
-n 显示所在行数
-v 输出不带关键字的行(取反)
-Ax 输出包含结果所在行之后的x行
-Bx 输出包含结果所在行之前的x行

基于列文本处理

cut -d: -f3 /etc/passwd
grep ldh /etc/passwd | cut -d: -f3

参数

d 指定分割符
f 指定第几列
c 指定字符,如-c2-6 输出第2到第6个字符

文本统计

wc 文本名称
参数

-l 只显示行数
-w 统计单词数
-c 统计字节数
-m 统计字符数

文本排序

sort 文本名
参数

-r 倒序排序
-n 基于数字进行排序
-f 忽略大小写
-u 删除重复行
-t c 使用c作为分割符,分割成列进行排序
-k x 当进行基于指定字符作为分隔符为列的排序时,指定基于那个列排序

删除重复行

sort -u 文件名
uniq 文件名     只删除相邻的重复行

文本比较

diff 用来比较两个文本的区别
diff 文本1 文本2
参数

-i 忽略大小写
-b 忽略空格数量的改变
-u 统一显示比较信息(一般用以生成patch文件)
diff -u 文件1 文件2 > file.patch

处理文本内容

  • 删除关键字
    tr -d 'TMD' < fileName
  • 转换大小写
    tr 'a-z' 'A-Z' < fileName
    注意这里必须使用重定向 <
    也可以试一下
    tr '1-6' 'A-Z' < fileName看看会发生什么。

搜索替换

sed用以搜索和替换文本
sed 's/要替换的文本/替换文本/g' 文本名称
其中,
g代表替换所有,否则只替换搜索到的第一个
sed '1,50s/要替换的文本/替换文本/g' 文本名称
只替换1到50行
参数

-e 可以同时指定多个替换
-f sededit 调用sededit文件里的sed命令

你可能感兴趣的:(Linux Note 15 文本处理)