grep多个字符串的shell命令是什么? 对于输入文本[命令的输出],我需要检查是否存在少量字符串。如果所有字符串都存在则返回true,否则返回false(AND操作)。
示例1:输入:grep多个字符串的shell命令是什么?对于输入文本[命令的输出],我需要检查是否存在少量字符串。如果所有字符串都存在则返回true,否则返回false(AND操作)。
搜索字符串"需要" "检查" "几个" "和"
输出:True
Exapmle 2:grep多个字符串的shell命令是什么?对于输入文本[命令的输出],我需要检查是否存在少量字符串。如果所有字符串都存在则返回true,否则返回false
搜索字符串"需要" "检查" "几个" "和"
输出:错误
答案 0 :(得分:0)
您可以使用类似
的内容$cat test.txt
name1 is a boy
name2 is a girl
name3 is a good person
name4 is unknown to me
$ grep -q "name1" test.txt && grep -q "name2" test.txt
$ echo $?
0
$ grep -q "name1" test.txt && grep -q "helloWorld" test.txt
$ echo $?
1
使用grep,您正在搜索每个模式。如果其中任何一个未能在文件中找到该模式,它将以1状态退出。所以在我的第二个例子中,第一个grep成功并返回0而第二个返回1,因此当你查询退出状态时它会说1.用这个,你可以检查你是否找到了文件中的所有模式。
答案 1 :(得分:0)
如果您的意思是“所有搜索目标都在文件中某处”,那么您可以
awk '/need/{n=1}/check/{c=1}/few/{f=1}/AND/{A=1}
END{exit (!(n&&c&&f&&A))}' file2search
回声$?当在文件中找到所有内容时将返回0,当任何或所有内容都缺少时将返回1。
如果您的意思是“所有搜索目标都位于同一行”,那么您可以
awk '{ if ($0 ~ /need/ && $0 ~ /check/ && $0 ~ /few/ && $0 ~ /AND/) lineMatched=1 }
END { if (lineMatched) exit 0 ; else exit 1 }' file2Search
回声$?将以同样的方式为此工作。
IHTH