awk在命令行上的行为与从脚本行为不同

时间:2012-04-12 16:37:46

标签: awk

我希望这会把'1'放进去,而是输出'1 2 3'

echo "1 2 3" | awk  "{ print $1 }"

但是,从文件运行awk代码时它确实有效(awkscript.awk包含{print $ 1}):

echo "1 2 3" | awk -f awkscript.awk

1 个答案:

答案 0 :(得分:3)

您应该使用:

echo "1 2 3" | awk  '{ print $1 }'

然后它也从命令行打印1。在awk命令中,这是'而不是"

说明:使用双引号"变量$1会事先展开,因为这只是一个空字符串,实际上你的命令会变成这样:

echo "1 2 3" | awk '{ print }'