Linux文本工具

文本查看
直接查看:
cat:从第一行开始输出所有内容(选项:-E、-n、-A、-b、-s)
tac:从最后一行开始倒序输出所有内容
rev:从第一行开始每行反向输出所有内容
[eg]
文件file0包括abcde和12345两行内容

分页查看:
more:分页显示大文本文件 (选项:-f、-num、+num、-s、+/pattern)
less:分页显示大文本文件(选项:-f、-i、-s、-N;操作:?、/、n、N)
[cf]
more显示到文本末尾后会自动退出,less不会自动退出
more仅能在查看前搜索(+/),less在文本内既可以向上搜索(?),也可以向下搜索(/)
more和less都可以直接打开文件也可以接收标准输入
内容抽取
按行截取:
head:输出文本开头的一部分内容(-c、-n、-num)
tail:输出文本结尾的一部分内容(-c、-n、-num、-f、-F)
[说明]
head和tail默认情况下均取10行
tail-f和tail -F均是用来跟踪文件,查看文件内容变化
tail-f跟踪文件描述符,文件被删除后停止
tail-F跟踪文件名,文件被删除新建同名文件后,跟踪继续
tailf类似与tail -f,但更节省资源
[cf]
head(tail)-n -k和head(tail) -n +k的区别

按列截取:
cut:显示每行从开头算起str1到str2的字符(-d、-f、-c)
[eg]
cut -d% -f1,2,4-6 file:以%为分隔符对file中每行内容,输出第1,2,4,5,6列内容

*paste:合并两个文件同行号的列到一行(-d、-s),与cut对应使用
按关键字截取:
grep:文本过滤命令(Global search REgular expression and Print outthe line)
根据用户指定的”模式”对目标文件文本逐行匹配检查,打印匹配到的行
(-v、-i、-n、-c、-o、-A、-B、-C、-e、-E、-f、-w)
*结合正则表达式使用。
*Linux文本处理三剑客:
grep:文本过滤工具
sed:文本编辑工具(stream editor)
awk:文本报告生成器
文本分析
相关统计:
wc:计数单词总数、行总数、字节总数和字符总数(-l、-w、-c、-m、-L)
文本排序:
sort:将整理过的文本显示在STDOUT,不改变原始文件(-r、-R、-n、-f、-u、-t、-k)
[eg]
sort-t: -k3 -n /etc/passwd:对/etc/passwd文件对:切割的第三列按数字排序
uniq:从输入中删除前后相接的重复行(-c、-d、-u),常与sort命令连用
文本比较:
diff:比较两个文件之间的区别(-u:显示对比的详细区别)
*patch:复制其他文件中进行的改变(谨慎使用,一般-b自动备份改变的文件)
[eg]
diff -u f00.conf foo2.conf>foo.patch
patch-b foo.conf foo.patch