天天看點

sort指令

sort指令

sort

指令用于将文本檔案内容加以排序,可針對文本檔案的内容,以行為機關來排序。

文法

sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
           

參數

  • -b, --ignore-leading-blanks

    : 忽略前導空格。
  • -d, --dictionary-order

    : 隻考慮空格和字母數字字元。
  • -f, --ignore-case

    : 将小寫字元轉為大寫字元。
  • -g, --general-numeric-sort

    : 按一般數值進行比較。
  • -i, --ignore-nonprinting

    : 隻考慮可列印字元。
  • -M, --month-sort

    : 比較

    JAN < ... < DEC

  • -h, --human-numeric-sort

    : 比較人類可讀的數字,例如

    2K

    1G

  • -n, --numeric-sort

    : 根據字元串數值進行比較。
  • -R, --random-sort

    : 按鍵的随機哈希排序。
  • --random-source=FILE

    : 從

    FILE

    中擷取随機位元組。
  • -r, --reverse

    : 反轉比較結果。
  • --sort=WORD

    : 根據

    WORD

    排序:一般數字

    -g

    ,chan數字

    -h

    ,月份

    -M

    ,數字

    -n

    ,随機-

    R

    ,版本

    -V

  • --batch-size=NMERGE

    : 一次最多合并

    NMERGE

    輸入,對于更多輸入,請使用臨時檔案。
  • -c, --check, --check=diagnose-first

    : 檢查已排序的輸入,不排序。
  • -C, --check=quiet, --check=silent

    : 類似于

    -c

    但不報告第一行錯誤。
  • --compress-program=PROG

    : 用

    PROG

    壓縮臨時檔案,用

    PROG-d

    解壓臨時檔案。
  • --debug

    : 注釋行中用于排序的部分,并向

    stderr

    警告可疑用法。
  • --files0-from=F

    : 從檔案

    F

    中以

    NUL

    結尾的名稱指定的檔案讀取輸入,如果

    F

    -

    ,則從标準輸入讀取名稱。
  • -k, --key=POS1[,POS2]

    : 在

    POS1

    處開始鍵(原點

    1

    ),在

    POS2

    處結束鍵(預設行結束)。
  • -m, --merge

    : 合并已排序的檔案,不排序。
  • -o, --output=FILE

    : 将結果寫入

    FILE

    而不是标準輸出。
  • -s, --stable

    : 通過禁用最後的比較來穩定排序。
  • -t, --field-separator=SEP

    : 使用

    SEP

    代替非空到空的轉換。
  • -T, --temporary-directory=DIR

    : 将

    DIR

    用于臨時檔案,而不是

    $TMPDIR

    /tmp

    多個選項指定多個目錄。
  • --parallel=N

    : 将同時運作的排序數更改為

    N

  • -u, --unique

    : 對于

    -c

    檢查嚴格的順序,隻輸出相等運作的第一個。
  • -z, --zero-terminated

    : 以 位元組結束行,而不是換行。
  • --help

    : 輸出幫助資訊。
  • --version

    : 輸出版本資訊。

示例

file.txt

file1.txt

file2.txt

檔案内容如下。

# file.txt
abhishek
chitransh
satish
rajan
naveen
divyam
harsh

# file1.txt
50
39
15
89
200

# file2.txt
abc
apple
BALL
Abc
bat
bat
           

file.txt

檔案内容進行排序,要儲存的話需要使用輸出重定向。

sort file.txt
# abhishek
# chitransh
# divyam
# harsh
# naveen
# rajan
# satish

sort file2.txt
# abc
# Abc
# apple
# BALL
# bat
# bat
           

可以使用

-r

标志執行逆序排序。

sort -r file.txt
# satish
# rajan
# naveen
# harsh
# divyam
# chitransh
# abhishek
           

使用

-n

對數字進行排序,不使用

-n

的話則會使用字典序排序。

sort -n file1.txt
# 15
# 39
# 50
# 89
# 200

sort file1.txt
# 15
# 200
# 39
# 50
# 89
           

要對帶有反向數字資料的檔案進行排序,我們可以使用下面

-nr

兩個選項的組合。

sort -nr file1.txt
# 200
# 89
# 50
# 39
# 15
           

-u

排序并删除重複項。

sort -u file2.txt
# abc
# Abc
# apple
# BALL
# bat
           

-c

檢查檔案是否已經按照順序排序。

sort -c file2.txt
# sort: file2.txt:4: disorder: Abc
           

每日一題

https://github.com/WindrunnerMax/EveryDay
           

參考

https://www.computerhope.com/unix/usort.htm
https://www.runoob.com/linux/linux-comm-sort.html
https://www.geeksforgeeks.org/sort-command-linuxunix-examples/