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

如何使用Awk比较文件中的列并新增存储最小值的列?

一行Awk解决新增最小值列的需求

当然有更简洁高效的Awk方案啦!你的需求完全不需要拆分成多个脚本再合并,一行命令就能搞定:

awk '{print $0, (NR==1 ? "smallest" : ($2 < $3 ? $2 : $3))}' test.txt

命令细节解释:

  • $0:输出当前行的全部原有内容,完美保留原格式
  • NR==1:判断是否是表头行(第一行),如果是就追加列名smallest
  • ($2 < $3 ? $2 : $3):对数据行直接比较第2列(col1)和第3列(col2)的值,输出更小的那个(这是Awk里的三元运算符,相当于简化版的if-else判断)

实际测试效果

你的输入文件test.txt内容:

label col1 col2
A 0.999966 0.618701

运行命令后,输出结果正好符合你的期望:

label col1 col2 smallest
A 0.999966 0.618701 0.618701

对比你原来的方法

你之前拆分文件再合并的方式不仅步骤繁琐,还会打乱多行数据的原有顺序,同时也没处理表头的新增列名需求。这个一行Awk命令一次性解决了所有问题,更高效也更易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:17:20