我有以下输出
$ mycommand
1=aaa
1=eee
12=cccc
15=bbb
我有一个字符串str
,其中包含:
eee
cccc
并且我只想显示字符串行中存在的包含字符串的行
所以我的输出将是:
$ mycommand | use_awk_or_sed_or_any_command
1=eee
12=cccc
说你的命令是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
cccc
w
eeeeee
如果将字符串存储在文件中,则可以使用grep
其-f
选项:
$ cat search
eee
cccc
$ grep -wf search file
1=eee
12=cccc
-F
如果您的字符串包含特殊字符,例如 等,.
您可能还需要该选项。$