「Linux」カテゴリーアーカイブ

ログの照合

突然のLinuxネタです。

いくつかのテスト結果が出力されたログファイルがあり、その中のあるテストの結果が正しいか自動で照合したい時に何かいい方法がないかと考えたものです。

あまりコマンドを使いこなすのが得意じゃないので、ちょっと悩みました。

いくらか考えたところ、grepとwcで出来ました。
まず結果の期待値をexp.txtに書いておきます。複数行でもOKです。
もちろん、ログと同じフォーマットで書かないといけません。
ログファイルをlog.txtとした場合、以下のようにします。

# !/bin/sh
EXP_CNT=`cat exp.txt | wc -l`
LOG_CNT=`grep -f exp.txt log.txt | wc -l`
if [ $EXP_CNT -ne $LOG_CNT ]; then
echo "error"
fi

とまあ、こんな感じです。
exp.txtの行数と同じ数分log.txtとヒットすれば一致という感じです。

ただこの方法はexp.txtの中身と同じものがlog.txtに複数あってはいけないという制約があります。