2

我希望这会放 '1' 但它会输出 '1 2 3'

回声“1 2 3” | awk "{ 打印 $1 }"

但是,当从文件运行 awk 代码时,它确实可以工作(其中 awkscript.awk 包含 {print $1}):

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

1 回答 1

3

你应该使用:

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

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

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

echo "1 2 3" | awk '{ print }'
于 2012-04-12T16:40:44.323 回答