Bash Shell技术问询:如何忽略表头按文件最后一列值排序
在Bash Shell中实现带表头表格的指定列排序
嘿,这需求其实用Bash里的基础命令组合就能轻松搞定!咱们直接看具体的实现方式:
假设你的数据文件名叫grades.txt,可以用这条命令完成你要的操作:
head -n 1 grades.txt && tail -n +2 grades.txt | sort -k4,4gr
我来拆解下每个部分的作用:
head -n 1 grades.txt:先把第一行的表头直接输出,保证结果里表头还在最前面tail -n +2 grades.txt:提取文件里从第二行开始的所有数据行,跳过表头部分sort -k4,4gr:这是核心的排序命令:-k4,4:明确指定按第4列(也就是你说的最后一列Average_Winter_Grade)排序g:告诉sort按数值大小排序,而不是默认的字符串排序,这样像9.935和10这种能正确比较,不会出现字符串排序时10排在9前面的问题r:设置为降序排列,刚好符合你给出的示例里从高分到低分的顺序
执行这条命令后,输出的内容就会和你要求的完全一致啦!
内容的提问来源于stack exchange,提问作者M.Ionut
相关产品推荐
相关产品推荐

