📄 sort.txt
字号:
排序分类命令Sort
Sort命令的功能是对文件中的各行进行排序。Sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际上,Sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。
语法:
Sort [选项] 文件
说明:Sort命令对指定文件中所有的行进行排序,并将结果显示在标准输出上。如不指定输入文件或使用"-",则表示排序内容来自标准输入。
Sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。排序关键字定义了用来排序的最小的字符序列。缺省情况下以整行为关键字按ASCII字符顺序进行排序。
改变缺省设置的选项主要有:
- m 若给定文件已排好序,合并文件。
- c 检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值1退出。
- u 对排序后认为相同的行只留其中一行。
- o 输出文件 将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,Sort先将该文件的内容写入一个临时文件,然后再排序和写输出结果。
改变缺省排序规则的选项主要有:
- d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。
- f 将小写字母与大写字母同等对待。
- I 忽略非打印字符。
- M 作为月份比较:"JAN"<"FEB"
- r 按逆序输出排序结果。
+posl - pos2 指定一个或几个字段作为排序关键字,字段位置从posl开始,到pos2为止(包括posl,不包括pos2)。如不指定pos2,则关键字为从posl到行尾。字段和字符的位置从0开始。
- b 在每行中寻找排序关键字时忽略前导的空白(空格和制表符)。
- t separator 指定字符separator作为字段或者域分隔符。
-n, --numeric-sort compare according to string numerical value。以数值为关键字时一定要加上-n选项。 -k, --key=POS1[,POS2] start a key at POS1, end it at POS2,注意此处域从1开始计数。
下面通过几个例子来讲述Sort的使用。
用Sort命令对text文件中各行排序后输出其结果。请注意,在原文件的第二、三行上的第一个单词完全相同,该命令将从它们的第二个单词vegetables与fruit的首字符处继续进行比较。
用户可以保存排序后的文件内容,或把排序后的文件内容输出至打印机。下例中用户把排序后的文件内容保存到名为result的文件中。
$ Sort text>result
以第2个字段作为排序关键字对文件example的内容进行排序。
$ Sort +1-2 example
对于file1和file2文件内容反向排序,结果放在outfile中,利用第2个字段的第一个字符作为排序关键字。
$ Sort -r -o outfile +1.0 -1.1 example
Sort排序常用于在管道中与其他命令连用,组合完成比较复杂的功能,如利用管道将当前工作目录中的文件送给Sort进行排序,排序关键字是第6个至第8个字段。
$ ls - l | Sort +5 - 7
$ ps -e -o " comm pid time"|Sort -d //按照command的首字母的字母顺序排序
Sort命令也可以对标准输入进行操作。例如,如果您想把几个文件文本行合并,并对合并后的文本行进行排序,您可以首先用命令cat把多个文件合并,然后用管道操作把合并后的文本行输入给命令Sort,Sort命令将输出这些合并及排序后的文本行。在下面的例子中,文件veglist与文件 fruitlist的文本行经过合并与排序后被保存到文件clist中。
$ cat veglist fruitlist | Sort > clist[LuoXinsheng@FC7 sed]$sort -n -k5 tt //按照第5域进行分类;-rw-r--r-- 1 root root 0 25 tt-rw-r--r-- 1 root root 234 36 lxs-rw-r--r-- 1 root root 234 51 temp-rwxr--r-- 1 root root 234 24 test.sed-rw-r--r-- 1 root root 283 07 ttt-rwxr-xr-x 1 root root 1499 04 GC0204216.txt[LuoXinsheng@FC7 sed]$sort -n -k5 -k6 tt //表示先按照第5域进行分类,再按照第6域进行分类;-rw-r--r-- 1 root root 0 25 tt-rwxr--r-- 1 root root 234 24 test.sed-rw-r--r-- 1 root root 234 36 lxs-rw-r--r-- 1 root root 234 51 temp-rw-r--r-- 1 root root 283 07 ttt-rwxr-xr-x 1 root root 1499 04 GC0204216.txt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -