grep: 小さな文字列内で大きな文字列を探す

grep: 小さな文字列内で大きな文字列を探す

入力を受け取り、テキストファイルと一致する小さなシェルスクリプトを作成しています。

ところで、入力文字列がファイルの文字列より大きく、一致させたいと思います。

ユーザー入力:

abc-de-ef-gh1

ファイルのテキスト:

This is test,-de-ef-gh,This is test

grepユーザー入力に既存のファイルを使用すると、肯定的な結果が必要です。

この目標をどのように達成できますか? grepではこれを行うことはできません。

ベストアンサー1

パターンを含むファイルがあります。 grepそのオプションを使用してスキーマを読み取ることができます-f。文字列がパターン$inputと一致することを確認するには、patterns.txt次のようにします。

printf '%s\n' "$input" |
if grep -q -f patterns.txt; then
    echo 'matches'
else
    echo 'does not match'
fi

grepこれは中間パターンで文字列の内容を繰り返しますpatterns.txt。代わりに、この文字列を使用できますbash

if grep -q -f patterns.txt <<<"$input"; then
    echo 'matches'
else
    echo 'does not match'
fi

出力の生成を中止します(終了状態にのみ興味があります)-qgrep

パターンが固定文字列(正規表現ではない)の場合は、-F他のフラグ()でwithを使用する必要があります。grepgrep -qF -f ...

おすすめ記事