入力を受け取り、テキストファイルと一致する小さなシェルスクリプトを作成しています。
ところで、入力文字列がファイルの文字列より大きく、一致させたいと思います。
ユーザー入力:
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
出力の生成を中止します(終了状態にのみ興味があります)-q
。grep
パターンが固定文字列(正規表現ではない)の場合は、-F
他のフラグ()でwithを使用する必要があります。grep
grep -qF -f ...