私はログファイルを持っています。私は、「RC = X」 RC = 0がTRUEではありません> = 1 1件の発生があれば、私は失敗ログ内の失敗を識別する正規表現
としてフラグにそれをしたいが、私はこれを行うことができます
文字列の出現に
をスキャンしますシェル関数として?私はログファイルを持っています。私は、「RC = X」 RC = 0がTRUEではありません> = 1 1件の発生があれば、私は失敗ログ内の失敗を識別する正規表現
としてフラグにそれをしたいが、私はこれを行うことができます
文字列の出現に
をスキャンしますシェル関数として?あなたは、このためにはgrepを使用することができます。
grep -q "RC = [^0]" logfile && {
echo "Logfile is a failure"
other commands
exit
}
-q
は沈黙モードにgrep
を置く:何も出力は、[^0]
はRCのためのゼロ以外の値と一致しません。 Grepは、一致するものが見つからない場合は失敗ステータスを返し、存在する場合は成功ステータスを返します。 &&
は条件付きの "and"なので、RCに0以外の値があれば、grepは成功し、テストは失敗です。
grep
をif
に入れることもできます。この場合、
if grep -s "RC = [^0]" logfile
then
echo "Logfile is a failure"
else
echo "Logfile is a success"
fi
grepのその他のオプションについては、man grep
を参照してください。
'-s'はエラーメッセージを抑制するだけですが、一致する行は依然として出力されます。あなたは多分 '-q'を意味しましたか? –
@ベンジャミンW。あなたは正しいです。私は自分の答えを調整しました。ありがとうございました。 –
あなたは何を書いていますか? – codeforester