gpt4 book ai didi

awk - 为什么 AWK 删除前导空格?

转载 作者:行者123 更新时间:2023-12-04 21:02:24 25 4
gpt4 key购买 nike

为什么在下面的例子中没有打印前导空格?

$ echo " foo bar" | awk '{ $2 = "baz"; print $0 }'
foo baz

最佳答案

每当您“触摸”记录中的字段(在本例中是通过分配给第二个字段)时,awk 都会重新格式化整个记录。所以 $1 是“foo”,每个字段由输出字段分隔符 OFS 分隔,默认情况下是一个空格。

为了保持线路完整,您可以将代码更改为如下内容:

$ echo " foo bar" | awk '{ sub(/bar/, "baz"); print $0 }'
baz bar

作为一个整体而不是单个字段对行进行操作意味着不会进行重新格式化。

...尽管此时,您还不如使用 sed:

$ echo " foo bar" | sed 's/bar/baz/'
baz bar

关于awk - 为什么 AWK 删除前导空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32251916/

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