sort,wc,uniq 排序与统计命令


sort命令

语法:sort [parameter] [file or stdin]
参数:

  • -f:忽略大小写的差异,例如A和a视为编码相同
  • -b:忽略最前面的空格符部分
  • -n:使用“纯数字”进行排序(默认是以文字类型来排序的)
  • -r:反向排序
  • -t:分隔符,默认是用Tab键来分隔
  • -k:以哪个区间来进行排序的意思

举例:

求系统最大的用户ID目前到哪一号了

# cat /etc/passwd | sort -t ':' -k 3 -n

--------------------

uniq命令

语法:uniq [parameter]
参数:

  • -i;忽略大小写字符的不同
  • -c:进行计数

举例:

查找登录主机用户有谁,并统计他的登录次数

# last | cut -d ' ' -f 1 | sort | uniq -c
1 
22 reboot
250 root
1 wtmp
#wtmp和第一行的空白都是last的默认字符,这两个可以忽略。

--------------------

wc命令

语法:wc [parameter]
参数:

  • -l:仅列出行
  • -w:仅列出多少字(英文单字)
  • -m:多少字符

举例:


查找登录系统的总人次

# last | grep [a-zA-Z] | grep -v 'wtmp' | wc -l
212
#由于last会输出空白行与wtmp字样的两行,因此,用grep取出非空白行,以及去除wtmp那一行,再计算行数。