0

我有以下输出

$ mycommand
1=aaa
1=eee
12=cccc
15=bbb

我有一个字符串str,其中包含:

eee
cccc

并且我只想显示字符串行中存在的包含字符串的行

所以我的输出将是:

$ mycommand | use_awk_or_sed_or_any_command
1=eee
12=cccc
4

2 回答 2

2

说你的命令是echo -e "1=aaa\n1=eee\n12=cccc\n15=bbb",你可以做

echo -e "1=aaa\n1=eee\n12=cccc\n15=bbb" | grep -wE "$(sed  'N;s/\n/|/' <<<"$str")"

sed命令只是替换换行符 ( \n)|用于grep -E(用于扩展的正则表达式)来分隔多个模式。这意味着将打印与grep匹配行。确保匹配是整个单词,因此不会匹配类似的内容。 eee ccccweeeeee

于 2014-05-08T13:24:31.433 回答
2

如果将字符串存储在文件中,则可以使用grep-f选项:

$ cat  search
eee
cccc

$ grep -wf search file
1=eee
12=cccc

-F如果您的字符串包含特殊字符,例如 等,.您可能还需要该选项。$

于 2014-05-07T13:56:11.857 回答