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

如何在awk中正确解析带引号列并计算测速数据平均值?

解决方案

方案一:修改awk命令适配带引号字段

直接利用awk的FPAT变量定义字段匹配规则,让它把带引号的多词内容识别为单个字段,无需额外安装工具:

tail -10 speed.dat | awk 'BEGIN {FPAT = "([^ \"]+)|(\"[^\"]+\")"} {sum+=$7; n++} END {print sum/n}'

FPAT的规则是:要么匹配不含空格和引号的连续字符,要么匹配被双引号包裹的任意内容,这样就能正确解析带引号的字段,让第7列对应真实的下载速度数值。

方案二:用CSV工具处理(需额外安装)

因为你的数据格式符合CSV的引号转义规则(空格分隔、特殊字段用引号包裹),可以用专门的CSV工具提取字段:

  1. 先安装csvkit:
sudo apt update && sudo apt install csvkit
  1. 提取第7列并计算平均值:
tail -10 speed.dat | csvcut -d ' ' -c 7 | awk '{sum+=$1; n++} END {print sum/n}'

选择建议

  • 若只是临时处理,优先用方案一,无需额外安装软件,直接修改awk命令即可解决问题;
  • 若后续经常要处理这类带引号的结构化数据,安装csvkit或miller这类工具会更省心。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:57:05