次の出力があります
$ 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 -E
grep
eee
cccc
w
eeeeee