ファイルから除外する必要があるキーワードを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
)。