シェルスクリプトでgrepを使用して正確な文字列を取得する

シェルスクリプトでgrepを使用して正確な文字列を取得する

shell scriptスクリプトの適切な部分を実行する前に、テキストファイルに名前が追加されていることを確認する機能があります。名前が見つかったら、スクリプトのこの部分をスキップします。

以下は衝突の例です。

オランダ領アンティルス

if ! grep "netherlands-antilles" uploaded.txt; then
    // Do some work here
    echo netherlands-antilles >> uploaded.txt
fi

オランダ

if ! grep "netherlands" uploaded.txt; then
    // Do some work here
    echo netherlands >> uploaded.txt
fi

すでにテキストファイルにあるため、Netherlands Antillies実際に必要なスクリプトの「オランダ」部分を実行しません。

grep文字列の一部だけを検索しない方法はありますか?netherlands一致するものを検索したくありませんnetherlands-antilles

答え1

これらのエントリがファイル行の唯一の内容である場合は、正規表現を使用して行の先頭と行のenfを含めることができます。

if ! grep "^netherlands$" uploaded.txt; then
// Do some work here
echo netherlands >> uploaded.txt
fi

関連情報