操作linux時,難免會遇到需要對文件內容進行排序的場景;sort是文本行排序命令,可以使用該命令對文件內容進行排序,比如按照字符或者數字對文件內容進行排序。
常用選項sort命令是一個比較簡單的命令,選項也相對容易記憶,以下列出比較實用的幾個選項
n:按數值進行排序
t:指定列的分隔符,默認為空格
k:指定按照第幾列欄位排序
r:降序排序,默認為升序
u:去除重複的行
f:排序忽略大小寫,默認大小寫順序不同
m:合併已經排序的文件,不做排序
示例一如下示例主要是對選項n,t,k,r的使用進行簡單演示
# 示例一測試文件內容
% cat 1.txt
one, 1
four, 4
three, 3
two, 2
# 默認使用字符排序
% sort 1.txt
four, 4
one, 1
three, 3
two, 2
# t指定列分隔符,k指定排序的列,n指定按照數值排序
% sort -t',' -k 2 -n 1.txt
one, 1
two, 2
three, 3
four, 4
# r指定降序排序
% sort -t',' -k 2 -nr 1.txt
four, 4
three, 3
two, 2
one, 1示例二如下示例主要演示u和f選項的使用
# 示例二測試文件內容
% cat 2.txt
two, 2
Two, 2
three, 3
three, 3
three, 3
four, 4
foUr, 4
foUR, 4
one, 1
ONE, 1
# 去除重複的行
% sort -u 2.txt
ONE, 1
Two, 2
foUR, 4
foUr, 4
four, 4
one, 1
three, 3
two, 2
# 去除重複的行,並且不區分大小寫
% sort -uf 2.txt
four, 4
one, 1
three, 3
two, 2
# 忽略大小寫並去除重複的行,同時按照逗號進行分隔,用第二列進行排序
% sort -uf -t ',' -k 2 2.txt
one, 1
two, 2
three, 3
four, 4示例三最後一個示例,演示m選項的使用,將已經排好序的文件進行合併
# 如下兩個文件3.txt和4.txt都是已經排好序的
% cat 3.txt
1
3
5
7
9
% cat 4.txt
2
4
6
8
# 將3.txt和4.txt文件進行合併
% sort -m 3.txt 4.txt
1
2
3
4
5
6
7
8
9