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

文字列をファイルに保存する場合はgrep、その-fオプションで使用できます。

$ cat  search
eee
cccc

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

文字列になど-Fの特殊文字が含まれている場合にも、このオプションが必要になることがあります。.$

于 2014-05-07T13:56:11.857 に答える
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 -Egrep eee ccccweeeeee

于 2014-05-08T13:24:31.433 に答える