linux常用文本处理命令

上一篇面经写完之后就去赶火车了,昨天到达帝都,空气还不错

之前说到要将linux命令统一来作个总结,今天刚意识到这句话说的真是不严谨啊!linux下面命令实在是太多了,下面对我在面经中接触的命令以及后来实习工作中接触的常用命令作一个总结,至于其它的,我尽量补上吧!

下面要介绍的主要是文本处理方面的命令

文件浏览

1
cat, more, less, head, tail

more与less的区别在于more只能向下翻页,而less还可以向前翻页
head与tail的区别从命令名字就可以区别出来。tail的一个很有用的用法是用来查看服务器的log,tail -f 可以实时的更新。

基于关键字的查找命令

1
2
3
4
5
grep
-i 忽略大小写
-n 显示结果所在行
-v 显示不包含关键字的行
...

grep的强大之处在于可以搭配正则表达式来进行查找
grep -E 'keyword' file
有兴趣的同学记得google一下

基于列处理文本

1
2
3
4
5
cut -d: f1 file
-d 指定分隔字符(默认的是tab)
-f 指定输出列号
-c 基于字符进行分隔,如
cut -c2-6 file`

文本统计

1
2
3
4
5
wc
-l 只统计行数
-w 只统计单词
-c 只统计字节娄
-m 只统计字符数

文本排序

1
2
3
4
5
6
7
sort
-r 进行倒序排序(默认的是正序,可以理解为递增)
-n 基于数字进行排序
-f 忽略大小写
-u 删除重复行
-t c 使用c作为分隔符分割为列进行排序
-k x 当进行基于列分隔时,指定为第x列

文本比较

1
2
3
4
5
diff file1 file2
-i 忽略大小写
-b 忽略空格数量的改变
-u 统一显示,比较信息,一般用于生成patch文件,在svn中版本控制很有用
diff -u file1 file2 > difference.patch

检查拼写
aspell 用于检查英文拼写

1
aspell check file or aspell list < file

处理文本内容

1
2
tr -d 'TMD' &lt; file 删除file中的关键字T, M, D
tr 'a-z' 'A-Z' &lt; file 转换大小写

有一点值得注意的是tr 只能删除关键字,并不是关键词。
如果要删除关键词的话可以用正则表达式的搜索替换思想,下面是用sed将文件中所有的‘TMD’用‘wrod’替换

1
sed 's/TMD/word/g' file

如果要删除的话,置word为空就行了

1
sed 's/TMD//g' file

先写这么多吧,有问题的还请大家多多指正!