📅  最后修改于: 2023-12-03 14:59:29.643000             🧑  作者: Mango
在编程的过程中,经常需要对数据按照某一列的值进行排序。在 Shell-Bash 中,可以使用 sort
命令来完成这个任务。
sort
命令sort
命令的基本语法为:
sort [选项] [文件名]
其中,选项包括:
-b
忽略行首的空白字符-f
将小写字母视为大写字母-n
按数值大小排序-r
降序排列如果不指定文件名,则默认从标准输入读取数据,并将排序结果输出到标准输出。
假设有如下数据:
name age gender
Tom 18 male
Lucy 20 female
Peter 22 male
如果需要按照年龄列进行排序,则可以这样做:
sort -k 2n data.txt
其中,-k
选项指定按照哪一列排序,2n
表示按照第二列进行数值排序(n
表示数值排序)。
排序结果如下:
name age gender
Tom 18 male
Lucy 20 female
Peter 22 male
同理,如果需要按照性别列进行排序,则可以这样做:
sort -k 3 data.txt
排序结果如下:
name age gender
Lucy 20 female
Tom 18 male
Peter 22 male
如果数据文件中使用的不是空格作为分隔符,而是其他字符,如逗号,可以使用 -t
选项指定分隔符,例如:
sort -t ',' -k 2n data.csv
在某些场景下,需要去除数据中的重复行。可以使用 uniq
命令来实现去重功能,例如:
sort -k 1 data.txt | uniq
其中,sort
命令会将数据按照第一列进行排序,然后 uniq
命令去除重复的行。
当需要按照多列进行排序时,可以使用 -k
选项指定多个排序列,并以逗号分隔,例如:
sort -k 2n,3 data.txt
该命令会先按照第二列进行数值排序,如果第二列相同,再按照第三列进行排序。
以上就是 Shell-Bash 按列排序的介绍,希望对你有所帮助。