命令行文本处理工具
快捷的文本处理技术与工具。
1.文件浏览类
cat,more less,head.tail
2.基于关键字搜索文本
grep 命令
-i :忽略大小写
-n :显示结果所在的行
-v:输出不带关键字的行
-Ax :在输出的时候包含结果所在行之后的指定行数
-Bx:在输出的时候包含结果所在行之前的指定行数 xj--->>>数字 grep -B3 ming
3.基于列处理文本
需要处理的文本有特定的格式,有时我们需要只显示某一列信息就可以了。可以用cut命令。 像/etc/passwd
cut -d: -f1 /etc/passwd
grep ming /etc/passwd |cut -d: -f3 -------------->>>>>>>>可以处理数据流
-d :指定分隔符(默认是TAB)
-f :指定输出的列号
-c :基于字符进行切割 cut -c2-6 /etc/passwd
4.文本统计
wc命令
-l :只统计行数
-w:只统计单词
-c:只统计字节数
-m:只统计字符数
5.文本排序(只支持英文和数字不支持中文)
sort命令
-r :进行倒序排序
-n:基于数字进行排序
-f:忽略大小写
-u :删除重复行 (uniq命令进行删除重复行,重复行指的是相邻的重复行)
-t c :使用c作为分隔符分割为列进行排序
-k x :当进行基于指定字符分割为列的排序时,指定基于那个列排序
6.文本比较
命令diff用以比较两个文件的区别
diff file1 file2
-i :忽略大小写
-b:忽略空格数量的改变
-u:统一显示比较信息(一般用以生成patch文件)
diff -u file1 file1-new >final.patch
7.拼写检查aspell
8.处理文本内容
tr命令进行处理(translate)
删除关键字:tr -d 'TMD' <filename (使用重定向输入数据,一般用来处理数据流 )
转换大小写:tr 'a-z' 'A-Z' <filename
9.搜索替换
sed命令进行搜索替换
sed 's/linux/unix/g' filename ------>>>>>搜索所有的linux关键字并替换为unix,g表示一行中出现多个匹配项时全部替换
sed '1,50s/linux/unix/g' filename ----->>>> 1到50行进行替换
sed -e 's/linux/unix/g' -e 's/ming/jiming/g' filename ----->>>>>指定多个匹配项
sed -f sededit filename ----->>>>>将匹配的命令写到文件中,sededit中保存的内容就是匹配命令(像:s/linux/unix/g)使用-f来调用这个文件