よろしければフォローしてみてください。 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
編集された回答: 次のコマンドは、上記の入力サンプルでテストされており、期待どおりに機能します:
awk '
BEGIN { RS = "§" }
{print (/apple/ && /mango/&&/grapes/) ? "match found" : "match not found"}
' demo.txt
文字 §
を使用しました 入力にそのような文字がなく、 RS = "\0"
であるため、レコードセパレータとして ポータブルではありません。そのような §
が発生する可能性があると思われる場合 入力ファイルで発生する可能性がある場合は、以下の移植可能なソリューションを使用できます:
awk '
{ i = i $0 }
END { print (i ~ /apple/ && i ~ /mango/ && i ~ /grapes/) ? "match found" : "match not found"}
' demo.txt
Bash `(())` が `[[]]` 内で動作しないのはなぜですか?
r-base-core には libc6 バージョン >=2.29 が必要なため、R 4.0 を Ubuntu 18.04.4 LTS にインストールすることは不可能ですか?