sort:python
選項: -b 忽略每行前面開始出的空格字符 -c 檢查文件是否已經按照順序排序 -d 排序時,處理英文字母、數字及空格字符外,忽略其餘的字符 -f 排序時,將小寫字母視爲大寫字母 -i 排序時,除了040至176之間的ASCII字符外,忽略其餘的字符 -m 將幾個排序好的文件進行合併 -M 將前面3個字母依照月份的縮寫進行排序 -n 依照數值的大小排序 -o 將排序後的結果存入指定的文件 -r 倒序 -t 指定排序時所用的分隔符, 默認爲[tab](一般和 -k 參數一塊兒使用) -k 指定以第幾個字段進行排序 -u uniq, 相同的數據, 僅出現一行 +<起始欄位>-<結束欄位> 以指定的字段來排序,範圍由起字段到結束字段的前一個字段 --help 顯示幫助信息 示例: sort /etc/passwd sort -t ':' -k 3 /etc/passwd -n sort -t ':' -k 3 /etc/passwd -n -r
uniq:blog
選項: 不指定選項, 默認重複的行只出現一次 -c 在每列旁邊顯示該行重複出現的次數 -d 僅顯示重複出現的行 -u 僅顯示出現過一次的行(惟一的行) -w 指定要比較的字段 示例: last | sort -k '3' | uniq -w 3 -c
sort 和 uniq 使用示例:排序
示例文件: cat test1.txt 1 2 3 4 5 cat test2.txt 1 3 5 6 7 9 示例1: 求兩個文件的交集 # 實現思路: 交集, 即兩個文件都存在的列, 使用 sort 排序以後再使用 uniq -d 命令便可實現 sort test1.txt test2.txt | uniq -d 1 3 5 示例2: 求兩個文件的並集 # 實現思路: 並集, 即兩個文件合併在一塊兒, 去除重複的行, 使用 sort 排序以後再使用 uniq 或者 sort -u sort test1.txt test2.txt | sort -u 或者 sort test1.txt test2.txt | uniq 1 2 3 4 5 6 7 9 示例3: 求兩個文件的差集 # 實現思路: 差集(test1-test2), 把 test2 的行重複2次和 test1 的元素放到一塊兒排序, 只輸出出現一次的項 # test1 相對 test2 的差集 sort test1.txt test2.txt test2.txt | uniq -u 2 4 # test2 相對 test1 的差集 sort test1.txt test1.txt test2.txt | uniq -u 6 7 9 示例4: 求兩個文件的對稱差 # 實現思路: 對稱差, 即兩個文件加起來只出現過一次的行, 使用 sort 排序以後再使用 uniq -u sort test1.txt test2.txt | uniq -u 2 4 6 7 9