您的位置:首页 > 运维架构 > Linux

Linux 文本处理工具

2016-09-01 21:58 302 查看
Linux 文本处理工具
wc 打印行、词、字节的数量

cut 按列切分文本
sort 排序
uniq 消除重复行
wc 打印行、词、字节的数量
语法:

wc [OPTION]... [FILE]...
选项:
-l:line 统计行数
-w:words 统计单词数
-c:characters 统计字符数
示例:
[zdw@note1 ~]$ cat wctest
hello world 123
[zdw@note1 ~]$ wc -l wctest    #统计行数
1 wctest
[zdw@note1 ~]$ wc -w wctest    #统计单词数
3 wctest
[zdw@note1 ~]$ wc -c wctest    #统计字符数
16 wctest
cut 按列切分文本

语法:

cut OPTION... [FILE]...
选项:
-d delimiter:指明分隔符(可以不用加空格)
-f fields:指定字段
#:第#个字段
#,#[,#]:离散的多个字段,例如1,3,6
#-#:连续的多个字段,例如1-6

混合使用:1-3,7
--output-delimiter=STRING #把string换成想要的分隔符就成
示例:
[root@node1 ~]# cut -d: -f 1,7 /etc/passwd                            #以:为分隔显示第1和第7列
[root@node1 ~]# cut -d: -f 1,7 --output-delimiter=' ' /etc/passwd     #把:分隔符改为空格
sort 排序
语法:

sort [OPTION]... [FILE]...
选项:
-b:忽略开头的空白

-f:忽略字符大小写
-r:逆序
-t:DELIMITER:分隔符
-k #:以指定字段为标准排序
-n:以数值大小进行排序
-u:uniq,排序后去掉重复显示
[root@node1 ~]# sort -t: -k3 -n /etc/passwd                 #以:分隔符以数值大小进行排序
[root@node1 ~]# sort -t: -k3 -n /etc/passwd |cut -d: -f3    #接上,看得更清楚
uniq 消除重复行
uniq命令在思想上和sort -u类似,但它有一些sor不能模拟的选项:-c累计每行出现的次数,-d只显示重复行,而-u只显示不重复的行。uniq命令的输入必须先排好序,因此通常把它放在sort命令之后运行。

语法:
uniq [OPTION]... [INPUT [OUTPUT]]
选项:
-c:显示每行重复出现的次数
-d:仅显示重复过的行
-u:仅显示不曾重复的行

Note:连续且完全相同方为重复
[root@pop3 ~]# cat number #测试文件
tres
unus
duo
tres
duo
tres
[root@pop3 ~]# sort number | uniq #显示唯一的、排序后的记录,重复则仅取唯一行
duo
tres
unus
[root@pop3 ~]# sort number | uniq -c #计数唯一的、排序后的记录
2 duo
3 tres
1 unus
[root@pop3 ~]# sort number | uniq -d #仅显示重复的记录
duo
tres
[root@pop3 ~]# sort number | uniq -u #仅显示不重复的记录
unus
[root@node1 ~]# history | cut -d' ' -f5 | sort -u        #查看历史命令,sort -u去掉重复的
[root@node1 ~]# history | cut -d' ' -f5 | uniq           #使用uniq命令,不连续的相同命令还是显示
[root@node1 ~]# history | cut -d' ' -f5 | sort | uniq
[root@node1 ~]# history | cut -d' ' -f5 | sort | uniq -c #使用uniq -c,能把重复几次显示出来


练习:以冒号分隔,取出/etc/passwd文件的第6至第10行,并将这些信息按第3个字段的数值大小进行排序,最后仅显示各自的第1个字段
[zdw@note1 ~]$ cat /etc/passwd | head -n 10|tail -n 5|cut -d: -f3 | sort -n
5
6
7
8
10


参考:
shell脚本学习指南 P90
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 文本 处理工具