ファイルから特定のキーワードを除外

ファイルから特定のキーワードを除外

ファイルから除外する必要があるキーワードをgrepするシェルスクリプトを作成しようとしていますが、除外されたキーワードから別の項目を見つけた場合は、特定のコマンドを実行する必要があります。

logcheck=`grep -vq 'accepting\|idle.' /tmp/lpstat-Final.log`

    if [[ $logcheck == 'accepting\|idle.' ]] ; then
        status=0
        statustxt=OK
    else
    echo "Something found"
    fi

「accept\|idle」に加えて、結果は「存在する場合」でなければなりません。 elseステートメントに移動する必要があることがわかりました。それ以外の場合、現在の状態は0になります。

ベストアンサー1

if ! grep -Evq 'accepting|idle' /tmp/lpstat-Final.log; then
    status=0
    statustxt=OK
else
    echo 'Something found'
fi

ここで最も重要なのはgrep-qこれは、コマンド置換を使用して何もキャプチャしないことを意味します($logcheckコードでは空です)。代わりに、ユーティリティの終了ステータスを使用して、何かが見つかったかどうかを確認します。

ここでは正規表現をよりきれいにするために使用しています-E。置換にも必要です(\|基本正規表現の置換はGNUなどでサポートされている拡張ですgrep)。

おすすめ記事