[root@bogon ~]# cat test.txt 10.0.0.1 10.0.0.3 10.0.0.4 10.0.0.4 10.0.0.5 10.0.0.1 10.0.0.3 10.0.0.5
-c, --count 在 行首 显示 出现 的 数目 -d, --repeated 仅显示 重复行 -D, --all-repeated 显示 全部 重复行 -f, --skip-fields=N 不比较 起初的 N 栏 -i, --ignore-case 比较时 忽略 大小写 -s, --skip-chars=N 不比较 起初的 N 个 字符 -u, --unique 仅显示 无重复行 -w, --check-chars=N 每行中 比较 不超过 N 个 字符 -N 同 -f N +N 同 -s N --help 显示 帮助信息, 然后 结束 --version 显示 版本信息, 然后 结束
[root@bogon ~]# uniq test.txt 10.0.0.1 10.0.0.3 10.0.0.4 10.0.0.5 10.0.0.1 10.0.0.3 10.0.0.5
ps:发现和原文件相比,只是把相邻的内容去重;
如果要把所有的去除,就要用到 sort,sort 是排序的命令,让重复的行相邻
[root@bogon ~]# sort test.txt 10.0.0.1 10.0.0.1 10.0.0.3 10.0.0.3 10.0.0.4 10.0.0.4 10.0.0.5 10.0.0.5
两者都用的话,效果如下:
[root@bogon ~]# sort test.txt | uniq 10.0.0.1 10.0.0.3 10.0.0.4 10.0.0.5
[root@bogon ~]# sort test.txt | uniq -c 1 2 10.0.0.1 2 10.0.0.3 2 10.0.0.4 2 10.0.0.5
倒序效果
[root@bogon ~]# cat test.txt | sort | uniq -c | sort -r 3 10.0.0.5 2 10.0.0.4 2 10.0.0.3 2 10.0.0.1
-b 忽略排序字段或关键字中开头的空格 -c 检查是否指定文件已经排序好了,不排序. -d 在关键字中只考虑[a-zA-Z0-9]字符. -f 将关键字中的小写字母折合成大写字母. -g 按照通常的数字值顺序作比较,暗含-b -i 在关键字中只考虑[\040-\0176]字符. -k POS1[,POS2] 从关键字POS1开始,*到*POS2结束. 字段数和字符偏移量都从1开始计数(与基于零的+POS格式作比较) -l 按照当前环境排序. -m 合并已经排序好的文件,不排序. -M 按(未知的)<`JAN'<...<`DEC'的顺序比较,暗含-b -n 按照字符串的数值顺序比较,暗含-b -o FILE 将结果写入FILE而不是标准输出. -r 颠倒比较的结果. -s 通过屏蔽最后的再分类比较来稳定排序. -t SEP 使用SEP来替代空格的转换non-. -T DIRECTORY 使用DIRECTORY作为临时文件,而不是$TMPDIR或者/tmp -u 如果有-c,则按严格的顺序进行检查; 如果有-m,则只输出相等顺序的第一个. -z 以0字节结束行,而不是使用换行符,这是为了找到-print0 --help 显示帮助并退出. --version 输出版本信息并退出.
看下需求:实现倒序或者升序用 sort
[root@bogon conf]# cat arp.txt 192.168.89.234 d481-d7b1-fb75 192.168.89.154 0080-4df0-4ba1 192.168.89.161 d89e-f319-5c74 192.168.89.64 54bf-6470-5b59 192.168.89.199 f0de-f1c1-7d78 192.168.89.246 000e-c6b3-f84f 192.168.89.116 00e0-4c6c-8842 192.168.89.166 509a-4c29-823e 192.168.89.100 f0de-f1d6-e7c6 192.168.100.1 1430-0480-18cb 192.168.100.2 30b4-9e1e-c749 192.168.100.100 8825-93cb-c814 192.168.100.41 f409-d811-832f 192.168.100.224 2c6e-85a5-67c5 192.168.100.85 acbc-32bb-ebd7 192.168.100.219 086d-41c6-657a 192.168.100.16 8c85-9043-ebfa 192.168.100.125 8c85-9086-43f0 192.168.100.196 8438-3566-596e 192.168.100.108 c4b3-01cf-c55f 192.168.100.93 0811-96d6-b8f8
[root@bogon conf]# sort -t. -k3.1,3.3nr -k4.1,4.3nr arp.txt 192.168.100.224 2c6e-85a5-67c5 192.168.100.219 086d-41c6-657a 192.168.100.196 8438-3566-596e 192.168.100.125 8c85-9086-43f0 192.168.100.108 c4b3-01cf-c55f 192.168.100.100 8825-93cb-c814 192.168.100.93 0811-96d6-b8f8 192.168.100.85 acbc-32bb-ebd7 192.168.100.41 f409-d811-832f 192.168.100.16 8c85-9043-ebfa 192.168.100.2 30b4-9e1e-c749 192.168.100.1 1430-0480-18cb 192.168.89.246 000e-c6b3-f84f 192.168.89.234 d481-d7b1-fb75 192.168.89.199 f0de-f1c1-7d78 192.168.89.166 509a-4c29-823e 192.168.89.161 d89e-f319-5c74 192.168.89.154 0080-4df0-4ba1 192.168.89.116 00e0-4c6c-8842 192.168.89.100 f0de-f1d6-e7c6 192.168.89.64 54bf-6470-5b59