Linux sort和uniq命令的應用

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
相關文章
相關標籤/搜索