Command-Line
Uniq 不會刪除重複項
我正在使用以下命令
curl -silent http://api.openstreetmap.org/api/0.6/relation/2919627 http://api.openstreetmap.org/api/0.6/relation/2919628 | grep node | awk '{print $3}' | uniq
當我想知道為什麼
uniq
不刪除重複項時。知道為什麼嗎?
您必須對輸出進行排序才能使
uniq
命令能夠工作。請參閱手冊頁:從 INPUT(或標準輸入)過濾相鄰的匹配行,寫入 OUTPUT(或標準輸出)。
因此,您可以先將輸出通過管道輸入
sort
,然後再輸入uniq
。或者您可以利用sort
’s 的能力來執行排序和唯一性,如下所示:$ ...your command... | sort -u
例子
排序 | 獨特的
$ cat <(seq 5) <(seq 5) | sort | uniq 1 2 3 4 5
排序 -u
$ cat <(seq 5) <(seq 5) | sort -u 1 2 3 4 5
你的例子
$ curl -silent http://api.openstreetmap.org/api/0.6/relation/2919627 http://api.openstreetmap.org/api/0.6/relation/2919628 \ | grep node | awk '{print $3}' | sort -u ref="1828989762" ref="1829038636" ref="1829656128" ref="1865479751" ref="451116245" ref="451237910" ref="451237911" ref="451237917" ref="451237920" ref="451237925" ref="451237933" ref="451237934" ref="451237941" ref="451237943" ref="451237945" ref="451237947" ref="451237950" ref="451237953"