首页 > 代码库 > Linux 文本处理工具

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 文本处理工具