You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unix系统中使用sort命令按文件最后一列排序?

如何在Unix中按文件最后一列排序?

在Unix系统里,如果需要按文件的最后一列进行排序,我们可以通过awk、sort和cut的组合命令来实现,下面结合你的具体示例详细说明:

示例场景

假设你的目标文件file.txt内容如下(每行是一条独立记录):

a 1
b 2 4
c 3
d 4 5 7
e 4 6
f 5

你期望的输出是按最后一列数值从小到大排序后的结果:

a 1
c 3
b 2 4
f 5
e 4 6
d 4 5 7

实现命令

直接运行这条命令就能得到想要的结果:

awk '{print $NF,$0}' file.txt | sort -n | cut -f2- -d' '

命令拆解说明

我来一步步解释这条命令的工作逻辑:

  • 第一步:用awk标记最后一列
    awk '{print $NF,$0}' file.txt 中,$NF是awk的内置变量,代表当前行的最后一个字段。这一步会把每行的最后一列内容放在整行的最前面,输出格式变成「最后一列值 原行内容」。比如原文件第一行会被处理成1 a 1,第二行变成4 b 2 4。
  • 第二步:按标记列排序
    sort -n 会对前面输出的内容进行数值排序(-n参数确保按数字大小排序,而不是默认的字典序),这样就实现了按原行最后一列排序的效果。
  • 第三步:移除标记列,还原原行格式
    cut -f2- -d' ' 以空格为分隔符,从第2个字段开始截取到行尾,这样就去掉了我们之前添加的最后一列标记,只保留原行内容,得到最终的排序结果。

内容的提问来源于stack exchange,提问作者VIPIN KUMAR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:23:19