次の出力があります
$ mycommand
1=aaa
1=eee
12=cccc
15=bbb
そして、次をstr含む文字列があります。
eee
cccc
文字列行に存在する文字列を含む行のみを表示したい
したがって、私の出力は次のようになります。
$ mycommand | use_awk_or_sed_or_any_command
1=eee
12=cccc
文字列をファイルに保存する場合はgrep、その-fオプションで使用できます。
$ cat search
eee
cccc
$ grep -wf search file
1=eee
12=cccc
文字列になど-Fの特殊文字が含まれている場合にも、このオプションが必要になることがあります。.$
あなたのコマンドが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 -Egrep eee ccccweeeeee