2017-02-26 8 views
1

私はログファイルを持っています。私は、「RC = X」 RC = 0がTRUEではありません> = 1 1件の発生があれば、私は失敗ログ内の失敗を識別する正規表現

としてフラグにそれをしたいが、私はこれを行うことができます

文字列の出現に

をスキャンしますシェル関数として?

+0

あなたは何を書いていますか? – codeforester

答えて

1

あなたは、このためにはgrepを使用することができます。

grep -q "RC = [^0]" logfile && { 
    echo "Logfile is a failure" 
    other commands 
    exit 
} 

-qは沈黙モードにgrepを置く:何も出力は、[^0]はRCのためのゼロ以外の値と一致しません。 Grepは、一致するものが見つからない場合は失敗ステータスを返し、存在する場合は成功ステータスを返します。 &&は条件付きの "and"なので、RCに0以外の値があれば、grepは成功し、テストは失敗です。

grepifに入れることもできます。この場合、

if grep -s "RC = [^0]" logfile 
then 
    echo "Logfile is a failure" 
else 
    echo "Logfile is a success" 
fi 

grepのその他のオプションについては、man grepを参照してください。

+0

'-s'はエラーメッセージを抑制するだけですが、一致する行は依然として出力されます。あなたは多分 '-q'を意味しましたか? –

+0

@ベンジャミンW。あなたは正しいです。私は自分の答えを調整しました。ありがとうございました。 –

関連する問題