该怎么做而不是 awk 中的正则表达式 exp
What to do instead of the regex exp in awk
现在我正在使用 awk 来搜索我放入正则表达式中的字符串,但是我正在尝试使用 "defined variable" 来使我的代码更易于重用。我要替换的代码是:
awk '
/lksdfjsalfjl/ { counter++}
END{}
' file
在网上搜索时,我发现 /.../ 中有一个变量不能使用。您对替代方案有什么建议吗?
使用~
进行正则表达式匹配:
awk -v x='lksdfjsalfjl' '[=10=]~x {counter++} END{print counter+0}' file
更详细:
-v x='lksdfjsalfjl'
这里定义了一个变量x
[=15=]~x {counter++}
如果当前行 [=16=]
与 x
.
中的正则表达式匹配,则计数器递增
如果您愿意,您可以使用 shell 变量来设置 awk 变量:
a='lksdfjsalfjl'
awk -v x="$a" '[=11=]~x {counter++} END{print counter+0}' file
现在我正在使用 awk 来搜索我放入正则表达式中的字符串,但是我正在尝试使用 "defined variable" 来使我的代码更易于重用。我要替换的代码是:
awk '
/lksdfjsalfjl/ { counter++}
END{}
' file
在网上搜索时,我发现 /.../ 中有一个变量不能使用。您对替代方案有什么建议吗?
使用~
进行正则表达式匹配:
awk -v x='lksdfjsalfjl' '[=10=]~x {counter++} END{print counter+0}' file
更详细:
-v x='lksdfjsalfjl'
这里定义了一个变量
x
[=15=]~x {counter++}
如果当前行
[=16=]
与x
. 中的正则表达式匹配,则计数器递增
如果您愿意,您可以使用 shell 变量来设置 awk 变量:
a='lksdfjsalfjl'
awk -v x="$a" '[=11=]~x {counter++} END{print counter+0}' file