使用 awk 显示匹配是否找到

rar*_*ayu 7 linux shell awk

我有一个场景,我在一个名为 demo.txt 的文件中有三个词

我的三个字是:苹果,芒果,葡萄

我想编写一个线性命令来检查文件中是否存在所有三个单词,然后显示匹配找到成功,否则显示匹配未找到

如何以一种线性方式处理 awk 命令

下面是我的代码不起作用

awk '{print (/apple/|/mango/|/grapes/ ? "true : match found " : "false : not found ")}' /D/demo.txt
Run Code Online (Sandbox Code Playgroud)

示例文件:demo.txt

abc:apple
b:mango
fgg:grapes
ball , candle 
vik,mani
raj,vilas
Run Code Online (Sandbox Code Playgroud)

除了第一个文件**我有包含以下文本的第二个文件

Azr
hjkds
$$ABC=%wkde**mo
$Bilas=%ram 
xyz
vxbnx
ram 
Run Code Online (Sandbox Code Playgroud)

我想检查是否存在确切的关键字 $$ABC=%wkde**mo $Bilas=%ram

如果找到匹配,则显示消息关键字找到,否则显示关键字未找到

Rav*_*h13 5

你能不能试试以下。如果您的 awk 支持字边界。

awk '
/\<apple\>/{
  app_found=1
}
/\<mango\>/{
  mango_found=1
}
/\<grapes\>/{
  grapes_found=1
}
END{
  if(app_found && mango_found && grapes_found){
    print "All 3 words found."
  }
  else{
    print "All 3 words are NOT present in whole Input_file."
  }
}
' Input_file
Run Code Online (Sandbox Code Playgroud)