sort -un删除不匹配的行

时间:2017-03-20 15:44:02

标签: bash unix

每当我在此特定文本文件上使用sort -un函数时,它都会删除某些值。现在-n是数字排序,而-u是删除重复项,我认为没有理由为什么它应该只删除那些只有开放端口的条目。

aaa@aaa cat test 
All 1500 scanned ports on 10.10.10.10 are open|filtered
161/udp  open|filtered snmp
161/udp   open          snmp
161/udp   open          snmp
161/udp  open          snmp

aaa@aaa cat test | sort -un
All 1500 scanned ports on 10.10.10.10 are open|filtered
161/udp  open|filtered snmp

任何想法为什么排序功能有这个奇怪的bahaviour?我会说明sort -unsort -n file | sort -u

相同

1 个答案:

答案 0 :(得分:3)

sort -u删除相互比较相同的项目。

sort -n指定数字比较。

因此,就161而言,评估为数值sort -un的行是相同的,因此有资格删除。

也许您可能希望sort -u test | sort -n - 执行唯一性传递,将行比较为字符串,然后将解释传递为数字值。