-6ren">
gpt4 book ai didi

awk - 在 awk 中使用通配符

转载 作者:行者123 更新时间:2023-12-04 01:40:18 25 4
gpt4 key购买 nike

使用 awk,我想打印第一列中包含以 22_ 开头的字符串的所有行

我尝试了以下操作,但显然 * 在 awk 中不能用作通配符:

awk '$1=="22_*" {print $0}' input > output

这在awk中可能吗?

最佳答案

让我们从一个测试文件开始:

$ cat >file
22_something keep
23_other omit

只保留以 22_ 开头的行:
$ awk '/^22_/' file
22_something keep

或者,如果您更喜欢显式引用第一个字段,我们可以使用:
$ awk '$1 ~ /^22_/' file
22_something keep

请注意,我们不必写 {print $0}在条件之后,因为这正是 awk 与条件关联的默认操作。

在正则表达式的开头, ^匹配一行的开头。因此,如果您想要 22_要出现在一行的开头或字段的开头,你想写 ^22_ .

在条件 $1 ~ /^22_/ , 注意运算符是 ~ .该运算符告诉 awk 检查前面的字符串是否 ~41 , matches the regular expression ^22_ . If we were to use + in place of ~`,我们将改为要求 awk 检查完全匹配。

关于awk - 在 awk 中使用通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47426995/

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