linux 中的sort
命令是乙個很實用的工具,用於對文字內容
以行
為單位進行ascii 碼
排序,預設按照公升序
進行排序(當然也可以按照降序
)。
sort
命令的格式如下:
sort `引數` `檔名`
這裡不打算介紹其完整的使用方法,只介紹其重用方法,其完整手冊可參看man sort
。
比如,我們有如下文字內容
,可以看到其內容是無序的,其中有兩行333
和bbb
:
>>> cat log.txt
_______________
555333
2222
666333
bbbccc
aaaccc
bbb
使用sort
命令,不加任何引數,對該檔案進行排序,如下,可看到已按照ascii 碼
進行了排序:
>>> sort log.txt
________________
2222
333333
555666
cccaaa
bbbbbb
ccc
使用-f
引數可以忽略字元大小寫進行排序,注意觀察ccc
的位置:
>>> sort -f log.txt
___________________
2222
333333
555666
aaabbb
bbbccc
ccc
使用-r
引數可以進行反向排序:
>>> sort -r log.txt
___________________
cccbbb
bbbaaa
ccc666
555333
3332222
使用-u
引數,可以對重複行
進行去重
,可以看到只剩下一行333
和bbb
:
>>> sort -u log.txt
___________________
2222
333555
666ccc
aaabbb
ccc
使用-o
引數,可以將排序結果寫到某個檔案
(也可以是原檔案
),如下,將檔案內容輸出到log.txt2
:
sort -u log.txt -o log.txt2
使用-n
引數,可以將排序結果按照數字大小
進行排序,可以看到2222
排在了666
下面,這裡只關心數字之間的次序就行(不需要關心字母
與數字
的關係):
>>> sort -n log.txt
___________________
aaabbb
bbbccc
333333
555666
2222
sort
命令還可以對行內容
,先進行分割
,再按照某列
進行排序,這時需要用到-t
和-k
引數。
-t
引數用於設定以什麼字元
為分隔符,-k
引數用於以分割後的哪一列
進行排序,如果沒有設定,缺省會按照第一列進行排序。
比如,我們有如下內容,每行內容以逗號,
分割,注意第4行只有一列ddd
:
>>> cat log2.txt
________________
bbb,333
aaa,2222
ccc,66
ddd,
bbb,555
我們以逗號,
進行分割,並按照第一列進行排序,如下:
>>> sort -t , log2.txt
______________________
aaa,2222
bbb,333
bbb,555
ccc,66
ddd,
按照第一列的第二個字元開始排序,如下1.2
表示從第一列的第二個字元開始
排序:
>>> sort -t , -k 1.2 log2.txt
_____________________________
aaa,2222
bbb,333
bbb,555
ccc,66
ddd,
按照第二列,並以數字大小
進行排序,如下:
>>> sort -t , -k 2 -n log2.txt
——————————————————————————————
ddd,
ccc,66
bbb,333
bbb,555
aaa,2222
先按照第二列,再按照第一列進行排序,如下:
>>> sort -t , -k 2 -k 1 log2.txt
_________________________________
ddd,
aaa,2222
bbb,333
bbb,555
ccc,66
下面總結一下以上講到的引數及其含義:
引數含義
-f
將小寫字母視為大寫字母,即忽略大小寫
-r
反向排序
-u
去重-o
輸出到檔案
-n
以數字大小進行排序
-t
設定分隔符
-k
設定按照第幾列排序,與-t
引數配合使用
(完。)
linux uniq 命令實用手冊
linuxuniq命令用於處理文字內容中的重複行。這裡我們只介紹其常用引數,其完整用法可參見man uniq。例如,我們有如下檔案內容 cat log.txt hello hello world world hello使用uniq命令,不加任何引數處理,注意,這裡的兩行hello並沒有相鄰,所以最終...
Rcpp實用手冊
c 對應於r的資料型別有如下這些 double numeric int integer string character logical bool 在c 中可以直接使用r的物件有 所有算術邏輯運算子都是可以向量化的 pow,include using namespace rcpp rcpp expo...
tar 實用手冊
url tar 命令用來將很多檔案打包成乙個單一的磁帶或者磁碟歸檔,並可從歸檔檔案恢復出檔案列表。當你需要通過 email 傳送大量檔案時或者傳輸檔案時非常有用。這裡我們介紹一些基本的使用場景。tar 的語法 tar options file.tar file1 file2 file.tar 是 t...