Linux 的文本处理命令一览

grep 基于关键字搜索文本内容

-i 搜索时忽略大小写
-n 显示结果所在行数
-v 输出不带关键字的行
-Ax 在输出的时候包含结果所在行之后的指定行数(x为一个数值,表示输出后面x行)
-Bx 在输出的时候包含结果所在行之前的指定行数(同上)

cut 基于列处理文本内容
cut -d: -f1 /etc/passwd
grep upliu /etc/passwd | cut -d: -f3

-d 指定分割字符(默认是TAB)
-f 指定输出的列号
-c 基于字符进行切割

cut -c2-6 /etc/passwd #显示第2到6列的文字
wc 统计文本信息

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

sort 对文本内容进行排序

-r 进行倒序排序
-n 基于数字进行排序
-f 忽略大小写
-u 删除重复行
-tc 使用 c 作为分隔符分割为列进行排序

uniq 删除相邻重复行

详情请看 man uniq 手册

diff 比较两个文本文件内容的区别

-i 忽略大小写
-b 忽略空格数量的改变
-u 同意显示比较信息(一般用于生成 patch 文件)

diff -u upliu.txt upliu-new.txt > final.path
aspell 检查英文拼写

该命令只能检查英文

tr 处理文本内容
tr 'a-z' 'A-Z' < upliu.txt # 小写字母替换为大写字母
sed 搜索替换

详细教程见这里:http://learn.akae.cn/media/ch32s03.html
和这里:http://coolshell.cn/articles/9104.html

awk 以列为单位处理文件

详细教程见这里:http://learn.akae.cn/media/ch32s04.html
和这里:http://coolshell.cn/articles/9070.html
sed awk 这两个工具比较强大,用法需要慢慢消化理解