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

如何使用BASH获取CSV文件每一行的最小值

问题原因

你编写的awk命令错误根源在于未正确配置CSV格式的字段分隔符:

  • awk默认使用空白字符作为字段分隔符,分割后得到的每个字段末尾都携带了多余的逗号(比如第一个字段实际值为-0.106992,)
  • 携带逗号的字段会被awk识别为字符串,字符串比较规则和数值比较规则完全不同,导致最小值计算逻辑失效

解决方案

调整字段分隔符为「逗号+任意数量空白」,确保分割后得到纯数值字段,正确命令如下:

awk -F ',[[:space:]]*' '{m=$1; for (i=2; i<=NF; i++) if ($i < m) m = $i; print m}' file_name

如果你的环境不支持POSIX字符类,也可以用更兼容的简化写法:

awk -F ', *' '{m=$1; for (i=2; i<=NF; i++) if ($i < m) m = $i; print m}' file_name

命令说明

  • -F 参数指定字段分隔符,,[[:space:]]* 或 , * 都可以匹配你CSV格式中「逗号后接任意数量空格」的分隔规则
  • 分割后的字段都是纯数值,后续大小比较逻辑和你原有写法一致,执行即可输出预期的每行最小值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:24:05