linux uniq命令详解

Linux uniq 命令读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如果输入文件用“- ”表示,则从标准输入读取。

语法

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件][-k field1[,field2]]

参数说明:

  • -c或–count 在每列旁边显示该行重复出现的次数。
  • -d或–repeated 仅显示重复出现的行列。
  • -D, --all-repeated[=METHOD] 打印所有重复行
  • 组可以用空行分隔
  • 方法={none(默认),prepend,separate}
  • -f<栏位>或–skip-fields=<栏位> 忽略比较指定的栏位。
  • -i, --ignore-case 比较时忽略大小写差异
  • -s<字符位置>或–skip-chars=<字符位置> 忽略比较指定的字符。
  • -u或–unique 仅显示出一次的行列。
  • -z, --zero-terminated 以0字节结束行,而不是换行
  • -w<字符位置>或–check-chars=<字符位置> 指定要比较的字符。
  • –help 显示帮助。
  • –version 显示版本信息。
  • [输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
  • [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

举例

#将t.log日志中各ip地址截取,并统计出现的次数,并按从大到小排序
http://192.168.200.10/index1.html
http://192.168.200.10/index2.html
http://192.168.200.20/index1.html
http://192.168.200.30/index1.html
http://192.168.200.40/index1.html
http://192.168.200.30/order.html
http://192.168.200.10/order.html
#方法1:
cat t.log |awk -F '/' '{print $3}'|sort|uniq -c|sort -nr|awk -F ' ' '{print $2 " " $1}'
#方法2:
cat t.log|cut -d '/' -f 3|sort|uniq -c|sort -nr

 

posted on 2023-02-13 10:55  阿泰555  阅读(189)  评论(0编辑  收藏  举报

导航