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

如何将计算指定行数值平均值的两行Bash脚本改写为单行命令

Bash单行命令实现方案

满足「同时写入values.txt+输出平均值」需求的写法

完全保留你原有两步逻辑,用tee做流分流即可合并为单行:

awk '{if($1=="KEYWORD") for(i=2;i<=NF;i++) print $i}' input.txt | tee values.txt | awk 'BEGIN{sum=0; counter=0}{sum+=$1; counter++}END{print sum/counter}'

逻辑说明

  • 第一段awk逻辑和你原代码完全一致:筛选input.txt第一列匹配KEYWORD的行,逐行输出第2列到最后一列的每个数值
  • tee values.txt 作用是将前一步的输出同时写入values.txt文件、和传递给下一个命令,不需要等待文件生成后再读取
  • 第二段awk直接读取管道传递的数值计算平均值,逻辑和你原代码一致

可选简化写法(不需要保留values.txt时用)

如果不需要生成values.txt文件,可以直接串连两个awk跳过tee:

awk '{if($1=="KEYWORD") for(i=2;i<=NF;i++) print $i}' input.txt | awk 'BEGIN{sum=0; cnt=0}{sum+=$1; cnt++}END{print sum/cnt}'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:45:02