「4月日新计划更文活动」
sort命令
sort [option]... [file]...
命令参数
-
- -b:忽略前导空格或者制表符,找出第一个非空格字符。
-
-
-c:测试文件是否已经排序。
-d:根据字典顺序排序。该选项仅比较数字、字母和空格等字符。
-f:忽略大小写。将小写字母转成大写字母后参与比较。
-i:仅仅比较可打印字符。
-n:根据算术值进行比较,参与比较的字符有空格、十进制数字,以及减号等。如果对非数值字符进行算术值比较,将会产生无法预知的结果。
-R:根据哈希值随机排序。
-r:颠倒排序结果。
-k:定义排序关键字。
-m:仅仅合并已经排好序的文件,不执行排序操作。
-o:将排序结果写入文件,而不是标准输出设备。
-t:指定字段分隔符。默认值为空格。
-u:删除重复的行,只保留第一个。
栗子🌰
[root@master1 ~]
Toy_Story HK 239 3972
The_Hill KL 63 2972
Star_Wars HK 301 4102
Boys_in_Company_C HK 192 2192
将文件按照字典序排序
sort会将整个文本行作为关键字进行排序,其排序规则是首先比较第1列,如果第1列的值相同,则比较第2列,依此类推,直至比较完所有的列。如果所有的列都相同,则判定这些行是重复的行。
- 语句格式:
sort filename
sort demo.txt >demo_test.txt
cat demo_test.txt

将文件使用单个关键字排序
- 语句格式:
sort -k pos1[,pos2]
- 参数说明:
pos1表示排序关键词的起始位置,pos2表示排序关键词的结束位置,两者之间用逗号隔开
特殊用法
- 语句格式:
sort -k pos
- 说明:特殊情况下忽略终止列,只保留起始列,就可用上面的语法
注意:
- 列号从1开始
sort命令中,一个文本行最多只能包含10列
sort -k 3,4 demo.txt >demo_example.txt
cat demo_example.txt

将文件按照数值大小排序
[root@master1 ~]
3972
2972
4102
2192
- 语句格式:
sort -n filename
- 用途:选项是按照数值大小排序
sort -n num.txt >demo_num.txt
cat demo_num.txt

将结果输出到指定文件中
sort -n -o demo_num.txt num.txt
cat demo_num.txt