Linux命令根據某一列對檔案內容去重
大家可能經常遇到檔案內容排序去重處理的事情,使用 linux 命令可以很方便的處理,sort 命令在處理檔案排序和去重中起著非常重要的左右,是檔案處理的利器。
比如有以下檔案內容:
pythontab.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
更多幹貨分享加python程式語言學習QQ群 515267276
想要按照第二列排序去重,怎麼做呢?其實只需要 sort 命令就可以解決了
1 |
|
sort 排序命令
-t 指定分隔符為‘\t’
-k 指定第三列
-u 去重
sort的其他一些選項:
-r 降序排列
-o 把排序結果輸出到原始檔
sort預設是把結果輸出到標準輸出,所以需要用重定向才能將結果寫入檔案,形如
sort filename>newfile
如果將結果輸出到原檔案,用重定向相當於清空
-n 看為數字來比較
你有沒有遇到過10比2小的情況。我反正遇到過。出現這種情況是由於排序程式將這些數字按字元來排序了,排序程式會先比較1和2,顯然1小,所以就將10放在2前面嘍。這也是sort的一貫作風。
我們如果想改變這種現狀,就要使用-n選項,來告訴sort,“要以數值來排序”!
-f 會將小寫字母都轉換為大寫字母來進行比較,亦即忽略大小寫
-c 會檢查檔案是否已排好序,如果亂序,則輸出第一個亂序的行的相關資訊,最後返回1
-C 會檢查檔案是否已排好序,如果亂序,不輸出內容,僅返回1
-M 會以月份來排序,比如JAN小於FEB等等
-b 會忽略每一行前面的所有空白部分,從第一個可見字元開始比較