gpt4 book ai didi

linux - 该怎么做而不是 awk 中的正则表达式 exp

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:51:13 25 4
gpt4 key购买 nike

现在我正在使用 awk 来搜索我放入正则表达式中的字符串,但是我正在尝试使用“定义的变量”来代替使我的代码更可重用。我要替换的代码是:

awk '
/lksdfjsalfjl/ { counter++}
END{}
' file

在网上搜索时,我发现一个变量不能在/.../中使用。您对替代方案有什么建议吗?

最佳答案

使用~进行正则匹配:

awk -v x='lksdfjsalfjl'  '$0~x {counter++} END{print counter+0}' file

更详细:

  • -v x='lksdfjsalfjl'

    这定义了一个变量x

  • $0~x {counter++}

    如果当前行 $0x 中的正则表达式匹配,这会增加计数器。

如果您愿意,您可以使用 shell 变量来设置 awk 变量:

a='lksdfjsalfjl'
awk -v x="$a" '$0~x {counter++} END{print counter+0}' file

关于linux - 该怎么做而不是 awk 中的正则表达式 exp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31061528/

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