[shell基础]——sort命令

时间:2023-03-09 08:07:01
[shell基础]——sort命令

sort命令
sort是按照ASCII码升序输出,且是从首字符依次向后比较的

常见选项
      -c 测试文件是否已经被排序

-r  逆向排序
      -n 按照数字数值大小排序

-t  指定分割符
      -k 指定域

-u 去除结果中的重复行
      -m 合并两个已排序的文件
      -o 将输出写到指定的文件

(1) -u 排序后去除重复行

# cat 1.txt
1:datadir=/aaa/zzz:
2:basedir=:cc
4:datadir=/sdfsfsd:dd
3:basedir=/data:gg
snsdsnsdsnsd
snsdsnsdsnsd # cat 1.txt | sort -u
1:datadir=/aaa/zzz:
2:basedir=:cc
3:basedir=/data:gg
4:datadir=/sdfsfsd:dd
snsdsnsdsnsd

(2) -n

# cat 2.txt
1
10
11
19
2
5 # cat 2.txt | sort --->#sort是按照ASCII码升序输出,且是从首字符依次向后比较的
1
10
11
19
2
5 # cat 2.txt | sort -n --->#为实现纯数值排序可用 -n 选项实现
1
2
5
10
11
19

(3) -r 逆序

# cat 2.txt | sort -n -r
19
11
10
5
2
1

(4) -t -k

# cat -n 3.txt
1 banana:30:5.5
2 apple:10:2.5
3 pear:90:2.3
4 orange:20:3.4 # cat 3.txt | sort
apple:10:2.5
banana:30:5.5
orange:20:3.4
pear:90:2.3 # cat 3.txt | sort -t ':' -k 3 -n --->#以:为分隔符,根据第3个域的数值大小排序
pear:90:2.3
apple:10:2.5
orange:20:3.4
banana:30:5.5 # cat 3.txt | sort -t ':' -k 3 -n -r --->#以:为分隔符,根据第3个域的数值大小逆向排序
banana:30:5.5
orange:20:3.4
apple:10:2.5
pear:90:2.3