grep を使用して文字列内の入力を見つけることができません

grep を使用して文字列内の入力を見つけることができません

カンマで区切られた文字列があり、その行に入力内容を見つけたいのです。

echo US | grep "US,CA,CH,JP"

出力が空です。その文字列で入力を見つけるには、grep をどのように使用すればよいですか?

答え1

コマンドの引数を交換します。

echo "US,CA,CH,JP" | grep US

で:

echo US | grep "US,CA,CH,JP"

US,CA,CH,JP入力文字列内で文字列 (パターン) を検索していますUSが、期待どおりに一致しません。

答え2

ただし、カンマが「または」ステートメントのように機能することを期待している場合は、カンマをパイプに変更して、オプションを使用する必要があります-E拡張正規表現:

echo US | grep -E "US|CA|CH|JP"

または、カンマを改行文字に変更します。

echo US | grep "US
CA
CH
JP"

答え3

私は使うだろう$echo US | grep -i "US|CA|JP|CH"

エコの代わりにリストか何かを与えて、実際にパターンを探す場所を「US」で探すのではなく、

関連情報