gpt4 book ai didi

shell - 为什么 awk 打印整行而不是第一个字段?

转载 作者:行者123 更新时间:2023-12-03 14:38:07 25 4
gpt4 key购买 nike

我正在努力学习使用 awk但它的行为不像我期望的那样。这是我的麻烦:

$ echo "Hello brave new world" | awk "{print $1}"
Hello brave new world

我希望看到“你好”,因为这是第一个字段。为什么空格不算作字段分隔符?

最佳答案

这是因为 Bash 正在解释 $1作为引用第一个 shell 参数,所以它用它的值替换它。因为在您的情况下,该参数未设置,$1只是被替换为空字符串;所以你的 AWK 程序实际上只是 {print } , 打印整行。

为了防止 Bash 这样做,请将您的 AWK 程序用单引号而不是双引号括起来:

echo "Hello brave new world" | awk '{print $1}'

或者
echo 'Hello brave new world' | awk '{print $1}'

关于shell - 为什么 awk 打印整行而不是第一个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9337583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com