有一堆 GPS 資料想要使用,但在紀錄資料時,有可能某處停留較久,因此會有重複資料的問題。解決方式可以寫簡單的程式,但我一直想不出有哪個洽當的 Unix 指令可以用,就先挑 awk 來使用。
資料格式:
25.064903,121.526657,
25.064903,121.526657,
25.064903,121.526657,
25.064898,121.526573,
25.064898,121.526573,
25.064898,121.526573,
25.064890,121.526489,
25.064890,121.526489,
25.064886,121.526436,
25.064886,121.526436,
輸出目標:
25.064903,121.526657,
25.064898,121.526573,
25.064890,121.526489,
25.064886,121.526436,
指令:
$ awk '{ if( !a[$0] ){ print $0 ; a[$0] = 1; } }' in.txt
使用簡單的 hash 概念。但比較重要的是指令少用,紀錄一下,以節省以後的時間花費。
感謝許青蛙補充!若不在意順序還可以用 sort -u 就好
感謝 fin 補充,對於連續的資料可以採用 uniq 來處理就行啦,所以在這個情境下就是連續性的刪除,可以用:
$ cat in.txt | uniq
沒有留言:
張貼留言