linux文本处理工具及正则表达式集锦

2019-09-23 09:09:04于海丽

 cut命令:

cut [OPTION]... [FILE]...

  -d  指明分隔符,默认tab

  -f  第# 个字段

  #,#[,#] :离散的多个字段,例如1,3,6

  #-# :连续的多个字段,  例如1-6

  混合使用:1-3,7

  -c 按字符切割

  --output-delimiter=STRING指定输出分隔符

 显示文件前10行,以“:”作为分隔符打印第1和第7个字段并分隔符换成空格输出:

[root@bogon ~]# head /etc/passwd |cut -d ":" -f1,7 --output-delimiter="  "  ##查看系统用户使用的shell
root  /bin/bash      
bin  /sbin/nologin
daemon  /sbin/nologin
adm  /sbin/nologin
lp  /sbin/nologin
sync  /bin/sync
shutdown  /sbin/shutdown
halt  /sbin/halt
mail  /sbin/nologin
operator  /sbin/nologin
[root@bogon ~]# ip addr |tail -4 |head -1 |cut -d "/" -f1 |cut -d " " -f6  ##获取ip地址
192.168.25.102

paste命令:

  paste [OPTION]... [FILE]...

  -d  分隔符: 指定分隔符,默认用TAB

  -s     所以行合并成一行显示

[root@bogon ~]# paste /etc/resolv.conf /etc/issue    ##合并输出两个文件的内容
# Generated by NetworkManager  S
nameserver 202.106.46.151  Kernel r on an m
nameserver 202.106.195.68  
[root@bogon ~]# paste -s /etc/issue    ##对输出的内容独立占一行
S  Kernel r on an m  

wc命令:统计文件内容

         -l      统计行数

         -w    统计单词个数

         -c     统计字节数

         -m    只计数字符总数

     -L  打印最长行的长度

[root@bogon ~]# cat /etc/passwd |wc -l  ##统计文件的行数
22
[root@bogon ~]# echo "aaa bbb ccc" |wc -w    ##统计输出的单词数量
3
[root@bogon ~]# echo "abcdef" |wc -m    ##统计输出有多少个字节
7

文本排序:sort [options] file(s)

  -r   逆序排序

  -n   根据字符串数值进行比较

  -f   忽略字符大小写

  -u   去重。配合-c,严格校验排序;不配合-c,则只输出一次排序结果

  -t   使用指定的分隔符代替非空格到空格的转换

  -k 1 在位置1 开始一个key,在位置2 终止(默认为行尾)

[root@bogon ~]# head /etc/passwd |sort -t ":" -k 3nr    ##以“:”分割对第三个字段数值进行倒序排列
operator:x:11:0:operator:/root:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sync:x:5:0:sync:/sbin:/bin/sync
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
[root@bogon ~]# cat /etc/passwd |sort -t':' -k 7 -u    ##以“:”分割对第7个字段排序,去重
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
halt:x:7:0:halt:/sbin:/sbin/halt
bin:x:1:1:bin:/bin:/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown