我想在awk命令,在这个正则表达式应该是一个变量使用正则表达式,我可以调用awk命令使用由正则表达式变量
实例之前进行更改: gawk 'BEGIN{RS=ORS="\n\n" {s=tolower($0)} s~/word1|word2/' file1.log
这个工作对我来说,这个命令显示所有行包含最后的“新行”到下一个“新行”
我想要做的就是words1或字词2,把字词1和字词2在变量中,在gawk中使用它
例如:
正则表达式=“字词1 |单词2” gawk 'BEGIN{RS=ORS="\n\n" {s=tolower($0)} s~/$regex/' file1.log
其中正则表达式可以改变取决于我的程序 我搜索并尝试了多种解决方案,但没有工作对我来说
解决方案我尝试过:
1)regex =“word1 | word2”; gawk 'BEGIN{RS=ORS="\n\n" {s=tolower($0)} s~/$regex/' file1.log
2)的正则表达式= “字词1 | WORD2” gawk -v pat="$regex" 'BEGIN{RS=ORS="\n\n" {s=tolower($0)} s~/pat/' file1.log
3)的正则表达式= “字词1 | WORD2” gawk 'BEGIN{RS=ORS="\n\n" {s=tolower($0)} {pat=$regex} s~/pat/' file1.log
4)的正则表达式= “字词1 | WORD2” echo $regex | gawk 'BEGIN{RS=ORS="\n\n" {s=tolower($0)} s~/$1/' file1.log
提前致谢!
嗨,这工作,但我想用1个变量,我可以在awk命令之前配置,因为它可能会在下一次迭代word1,word2,word3和word4 –
检查我的编辑一次,我已经添加了变量从shell到awk,其中可能有多个字符串。让我知道这是否有助于你。 – RavinderSingh13
工作!谢谢! –