[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
原文地址:https://www.cnblogs.com/snsdzjlz320/p/5693122.html