如何用awk匹配一个字符串中两处关键词

来源:百度知道 编辑:UC知道 时间:2024/05/13 12:20:32
需要用awk的正则表达式匹配一个字符串重的两处关键词,比如:
[string1]bin[string2]rundb[string3]
string1,2&3可能包好字符,数字,空格和“/”

如何通过匹配"bin"和"rundb"来选出来呢

先谢了。
谢谢516895352的回答。。。。我想补充一下,我希望可以判断出来bin在rundb前面

问题解决了:awk '$0 ~ /bin.*rundb/'

如果bin和rundb不要求为独立单词,则下句即可
echo $string | awk '/bin/&&/rundb/ {print "OK"}'
若要求为独立单词 用sed比较简单
echo $string | sed -n '/\bbin\b.*\brundb\b/p' | awk '{if(NF>0){print "OK"}}'
两者都是如果string中有bin和rundb就输出ok

第二种情况没这个问题,至于第一种,修改如下
echo $string | awk '/bin.*rundb/ {print "OK"}'