![如何在不使用 ' 字符的情况下对文本文件中的列进行平均?](https://linux22.com/image/63044/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E4%BD%BF%E7%94%A8%20'%20%E5%AD%97%E7%AC%A6%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%AF%B9%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E5%88%97%E8%BF%9B%E8%A1%8C%E5%B9%B3%E5%9D%87%EF%BC%9F%20.png)
我需要在不使用'
角色的情况下做到这一点。
我可以这样做:
awk '{sum+=$5} END { print "Average = ",sum/NR}'
除了这包含一个 '
.
答案1
您不需要''
(强引号),您可以使用较弱的形式""
,除非您需要转义 s "
。
awk "{sum+=\$5} END { print \"Average = \",sum/NR}"
但为什么?
答案2
如果你的 shell 支持它,你可以使用这里的文档从标准输入读取命令,并使用带引号的分隔符来防止 shell 扩展 awk 变量$5
awk -f- somefile << "EOF"
{sum+=$5} END { print "Average = ",sum/NR}
EOF
或者只是将命令放入文件中并运行那和awk -f
。