标签:linux 文本处理工具
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]...
选项:
-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 [OPTION]... [INPUT [OUTPUT]]
选项:
-c:显示每行重复出现的次数
-d:仅显示重复过的行
-u:仅显示不曾重复的行
Note:连续且完全相同方为重复
[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
本文出自 “赵东伟的博客” 博客,请务必保留此出处http://zhaodongwei.blog.51cto.com/4233742/1845384
标签:linux 文本处理工具
原文地址:http://zhaodongwei.blog.51cto.com/4233742/1845384