我首先要说的是,这个论坛是一个很好的知识来源。 我需要您的帮助才能显示No Match错误消息。
printf "some\nwhere\nonly\nwe\nknow\n" > test.txt
我正在寻找'only'字符串,如果匹配,则会显示
nawk 'c-->0;$0~s{if(b)for(c=b+1;c>1;c--)print r[(NR-c+1)%b];print;c=a}b{r[NR%b]=$0}' b=0 a=0 s="only" test.txt | awk '{if ($0 ~ /only/) print; else print "No Match"}'
输出:仅
如果我正在寻找'only'字符串并检查此行上是否还有苹果,我将收到No match message
nawk 'c-->0;$0~s{if(b)for(c=b+1;c>1;c--)print r[(NR-c+1)%b];print;c=a}b{r[NR%b]=$0}' b=0 a=0 s="only" test.txt | awk '{if ($0 ~ /apple/) print; else print "No Match"}'
输出:无匹配
但如果我正在寻找'apple'字符串(没有这样的话)并检查它是否存在,我不会收到'No Match'消息。
nawk 'c-->0;$0~s{if(b)for(c=b+1;c>1;c--)print r[(NR-c+1)%b];print;c=a}b{r[NR%b]=$0}' b=0 a=0 s="apple" test.txt | awk '{if ($0 ~ /apple/) print; else print "No Match"}'
输出为空白。 如何更改此行为,我希望获得“无匹配”消息。
答案 0 :(得分:0)
在awk。
如果找不到搜索短语。
awk '/searchphrase/{c++} END{if(c == 0) print "No Match"}' file
如果你想在没有匹配的情况下为每一行打印不匹配。
awk '!/searchphrase/{print "No Match"}' file
如果您希望在找到时仍然打印搜索短语
awk '/searchphrase/{c++; print} END{if(c == 0) print "No Match"}' file