1. 程式人生 > 其它 >linux 之 sort、uniq、wc

linux 之 sort、uniq、wc

sort

對檔案指定的行拍戲,並將結果寫到標準輸出。

語法:

-f 忽略大小寫的差異
-b 忽略最前面空格符部分
-n 使用純數字進行排序
-r 反向排序
-u 相同的資料,僅出現一行(uniq)
-t 分隔符
-k 以哪個區間來排序

舉例:

  • cat list.txt | sort # sort 是預設以第一個資料來排序,而且預設是以字串形式來排序,所以由字母 a 開始升序排序
  • cat list.txt | sort -t ',' -k 3 # , 分割後,以第三列進行排序
  • cat list.txt | sort -t ',' -k 3n # , 分割後,以第三列數字進行排序
root@iZ2zehj2kgftilijp2g5n5Z:~/ljm#
cat list.txt | sort -t ',' -k 3 b, 3, b, 1, 1 a, 1, 10 b, 2, 2 c, 1, 21 a, 2, 220 a, 2, 220 a, 2, 220 b, 0, 220 c, 2, 31 a, 3, 310 c, 3, 41

uniq

uniq 命令可以去除排序過的檔案中的重複行(只對相鄰的重複行起作用,所以uniq經常和 sort 合用)

uniq語法:

-i 忽略大小寫字元的不同
-c 進行計數
-u  只顯示唯一的行

示例:

root@iZ2zehj2kgftilijp2g5n5Z:~/ljm# cat list.txt | sort | uniq -c
1 a, 1, 10 3 a, 2, 220 1 a, 3, 310 1 b, 0, 220 1 b, 1, 1 1 b, 2, 2 1 b, 3, 1 c, 1, 21 1 c, 2, 31 1 c, 3, 41

wc

統計檔案裡面有多少單詞,多少行,多少字元

語法:

-l  輸出行
-w  輸出多少字
-m  輸出多少字元

示例:

root@iZ2zehj2kgftilijp2g5n5Z:~/ljm# cat list.txt | wc
     12      35     109
root@iZ2zehj2kgftilijp2g5n5Z:
~/ljm# cat list.txt | wc -l 12 root@iZ2zehj2kgftilijp2g5n5Z:~/ljm# cat list.txt | wc -w 35 root@iZ2zehj2kgftilijp2g5n5Z:~/ljm# cat list.txt | wc -m 109