sort排序基本语法:
sort [选项] [文件]
常用选项:
-r:逆序排序(降序)。
-n:按数值进行排序。
-k 字段:按指定的字段进行排序。该参数可指定多个字段,使用逗号分隔。默认字段分隔符为制表符或空格。
-t 分隔符:指定字段的分隔符。
-u:去除重复行,仅保留第一次出现的行。
-f:忽略大小写进行排序。
-b:忽略行首的空白字符进行排序。
-c:检查文件是否已经排好序,如果未排序则输出第一个不符合排序顺序的行。
-f:忽略大小写进行排序。例如,sort -f file.txt 将忽略行首字母的大小写进行排序。
-b:忽略行首的空白字符进行排序。
-c:检查文件是否已经排好序,如果未排序则输出第一个不符合排序顺序的行。
示例:
按行排序
sort 文件名
按第二个字段(年龄)进行排序,可以使用
-k
选项指定要排序的字段,并使用-t
选项指定字段的分隔符(这里是空格):sort -k 2 -t ' ' 1.txt
数字正序排序
默认情况下,sort 命令按照字典顺序对数字进行排序。如果需要按照数值大小排序,可以使用 -n 选项
数字逆序排序:使用-r
去除重复行
sort 命令还可以用于去除文本文件中的重复行,只保留第一次出现的行。使用 -u 选项即可实现。
按照多个字段排序
sort 命令支持按照多个字段进行排序。可以使用多个 -k 选项来指定要排序的字段和排序顺序。例如,假设有一个名为 data.txt 的文本文件:
使用 -k 3r 指定按第三个字段降序排序(r 表示逆序),再使用 -k 2n 指定按第二个字段升序排序(n 表示按数值排序)。
忽略前导字符
有时文本文件的每行可能会包含一些前导字符,例如空格或制表符。如果希望在排序时忽略这些前导字符,可以使用 -b 选项。例如,假设有一个名为 file.txt 的文本文件:
合并多个文件排序
sort 命令还可以合并多个文件并进行排序。只需将要排序的文件名依次列出即可。例如,假设有两个文件 file1.txt 和 file2.txt:
合并后的结果是将两个文件的内容整体排序
从标准输入读取数据排序
除了从文件中读取数据,sort 命令还可以从标准输入读取数据并进行排序。这样可以方便地与其他命令结合使用。例如,要对一组数字进行排序,可以使用管道将其传递给 sort 命令。例如:
这里使用 echo 命令生成一组数字,并通过管道 | 将其传递给 sort 命令进行排序。
echo(选项)(参数)选项
-e:激活转义字符。使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
•\a 发出警告声;
•\b 删除前一个字符;
•\c 最后不加上换行符号;
•\f 换行但光标仍旧停留在原来的位置;
•\n 换行且光标移至行首;
•\r 光标移至行首,但不换行;
•\t 插入tab;
•\v 与\f相同;
•\\ 插入\字符;
•\nnn 插入nnn(八进制)所代表的ASCII字符;