三剑客以外文本处理工具

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 #新文件变成了这样

以上是关于三剑客以外文本处理工具的主要内容,如果未能解决你的问题,请参考以下文章

linux文本处理三剑客之grep

文本处理三剑客之---grep系

文本处理三剑客之-grep

文本处理三剑客之grep

linux文本处理三剑客之一:grep

文本工具三剑客:sed