【发布时间】:2012-04-25 01:18:59
【问题描述】:
我希望这会放置“1”,但它会输出“1 2 3”
回声“1 2 3” | awk "{ 打印 $1 }"但是,当从文件运行 awk 代码时,它确实可以工作(其中 awkscript.awk 包含 {print $1}):
echo "1 2 3" | awk -f awkscript.awk
【问题讨论】:
标签: awk
我希望这会放置“1”,但它会输出“1 2 3”
回声“1 2 3” | awk "{ 打印 $1 }"但是,当从文件运行 awk 代码时,它确实可以工作(其中 awkscript.awk 包含 {print $1}):
echo "1 2 3" | awk -f awkscript.awk
【问题讨论】:
标签: awk
你应该使用:
echo "1 2 3" | awk '{ print $1 }'
然后它也会从命令行打印1。那是 ' 而不是 awk 命令中的 "。
解释: 使用双引号 " 变量 $1 会预先展开,因为这只是一个空字符串,所以你的命令实际上变成了这样:
echo "1 2 3" | awk '{ print }'
【讨论】: