文本查看及处理工具:wc, cut, sort, uniq

wc:word count

  • 命令 :
    wc [OPTION]... [FILE]...
  • 参数
    -l: lines
    -w:words
    -c: bytes

cut:

  • 命令:
    cut OPTION... [FILE]...

  • 参数:
    -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志
    -c :以字符为单位进行分割
    -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
    范围之内,该字符将被写出;否则,该字符将被排除
    -d CHAR:以指定的字符为分隔符;
    -f FIELDS:挑选出的字段;
    #:指定的单个字段;
    #-#:连续的多个字段;
    #,#:离散的多个字段;

  • cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切内容呢?

    cut命令主要是接受三个定位方法:

    第一,字节(bytes),用选项-b

    第二,字符(characters),用选项-c

    第三,域(fields),用选项-f

sort:

  • 命令:
    sort [OPTION]... [FILE]...
  • 参数:
    -n:基于数值大小而非字符进行排序;
    -t CHAR:指定分隔符;
    -k #:用于排序比较的字段;
    -r:逆序排序;
    -f:忽略字符大小写
    -u:重复的行只保留一份;
    重复行:连续且相同;

uniq:报告或移除重复的行

  • 命令:
    uniq [OPTION]... [INPUT [OUTPUT]]
  • 参数:
    -c:显示每行的重复次数;
    -u:仅显示未曾重复过的行;
    -d:仅显示重复过的的行;

练习:

1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来

[root@centos7 ~]# grep -v "/sbin/nologin" /etc/passwd | wc -l
5
[root@centos7 ~]# grep -v "/sbin/nologin" /etc/passwd | cut -d : -f1
root
sync
shutdown
halt
yang

2、查出用户UID最大值的用户名、UID及shell类型

[root@centos7 ~]# cat /etc/passwd|sort -t : -k 3 -n|cut -d : -f 1,3,7 | tail -n 1
nfsnobody:65534:/sbin/nologin

3、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序

[root@centos7 ~]# netstat -net
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode     
tcp        0     36 192.168.0.104:22        192.168.0.103:49761     ESTABLISHED 0          86221     
tcp        0      0 192.168.0.104:22        192.168.0.103:49875     ESTABLISHED 0          78426     
tcp        0      0 192.168.0.104:22        192.168.0.103:49370     ESTABLISHED 0          55961     
[root@centos7 ~]# netstat -net | grep "tcp" | tr -s " " : | cut -d: -f6 | uniq -c
      3 192.168.0.103

你可能感兴趣的:(文本查看及处理工具:wc, cut, sort, uniq)