三剑客以外文本处理工具
Posted yizhangheka
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三剑客以外文本处理工具相关的知识,希望对你有一定的参考价值。
张贺,多年互联网工作经验,担任过网络工程师、系统集成工程师、LINUX系统运维工程师,负责过大规模集群架构自动化运维管理工作,擅长Web集群架构与自动化运维,曾负责国内某电商运维工作。
笔者微信:zhanghe15069028807
文本处理最厉害的工具是文本处理”三剑客”(grep、sed、awk),一定要用的熟练,三剑客像是三本一流剑谱:太极剑法(变化多端,用意不用力)、辟邪剑法(唯快不破)、独孤九剑(破解天下一切武功)。
三种剑法皆属于一流剑法,但是面对小喽啰的时候范不上用这种高深的武功,都无需拔剑,用一些江湖流传的螳螂拳、八卦掌、炮锤足矣!
wc
discription:word count
wc [option]… [file]…
? –l:lines
? -w:words
? -c:bytes
[root@N2 ~]# cat test.txt
abxy
cab
abc
hello ha
[root@N2 ~]# wc test.txt
4 5 22 test.txt
[root@N2 ~]# wc -l test.txt
4 test.txt
[root@N2 ~]# wc -w test.txt
5 test.txt
[root@N2 ~]# wc -c test.txt
22 test.txt
cut
-d:指定分隔符,只能指定一个,awk可以指定多个
-f:挑选字段
? #单个字段
? #-#:连续多个字段
? #,#:离散的多个字段
[root@N2 ~]# cut -d: -f1,3 /etc/passwd | head -3
root:0
bin:1
daemon:2
sort
sort [OPTION]... [FILE]...
? -n:基于数据大小而字符进行排序,默认是根据字符排序
? -t:指定分隔符
? -k #:指定用于比较的字段
? -r:逆序排序
? -f忽略字符大小写
? -u:重复的行只保留一份,重复行是指连续且相同
uniq
uniq:报告或移除重复的行
-c:显示每行的重复次数
-u:仅显示未曾重复过的行
-d:仅显示重复过的行
[root@N2 ~]# cat test.txt
abxy
abxy
cab
abc
hello ha
//显示重复的次数
[root@N2 ~]# uniq -c test.txt
2 abxy
1 cab
1 abc
1 hello ha
//去除重复的行
[root@N2 ~]# uniq test.txt
abxy
cab
abc
hello ha
//显示不重复的行
[root@N2 ~]# uniq -u test.txt
cab
abc
hello ha
//仅显示重复过的行
[root@N2 ~]# uniq -d test.txt
abxy
//统计常用命令的top3,先把序号去掉,然后根据首字母排序,再显示次数,根据次数再排序,取出top3
history | awk '{print $2}' | sort | uniq -c | sort -nr | head -3
diff
[root@N2 ~]# cp /etc/fstab ./fstab.new
[root@N2 ~]# vim ./fstab.new
[root@N2 ~]# diff /etc/fstab ./fstab.new
5a6 #在第五行下面add了一行,变成了第6行
> zhanghe
[root@N2 ~]# diff /etc/fstab ./fstab.new
3c3 #第三行被change了
< # /etc/fstab #旧文件第三行原本是这样的
---
> # /etc/fstabzhanghe #新文件变成了这样
以上是关于三剑客以外文本处理工具的主要内容,如果未能解决你的问题,请参考以下文章