ファイルから特定のカウントを取得する必要があります。私が使用しているgrepステートメントは次のようなものです:
counter_pstn=0
completed_count_pstn=0
rec=0
for rec in `(grep "merged" update_completed*.log | awk '{print $1}' | sed 's/ //g' | cut -d':' -f2)`
do
if [ $counter_pstn -eq 0 ]
then
completed_count_pstn=$rec
else
completed_count_pstn=$(($completed_count_pstn+$rec))
fi
counter_pstn=$(($counter_pstn+1))
done
echo "Completed Orders PSTN Primary " $completed_count_pstn
ただし、ログファイルには次の形式のデータが含まれています。
2500 rows merged.
2500 rows merged.
2500 rows merged.
2500 rows merged.2500 rows merged.
2500 rows merged.
2500 rows merged.
その結果、1つのマージのカウントが欠落しています(たとえば、出力の4行目)。grepを変更するか、別の関数を使用してカウントを取得するにはどうすればよいですか。おそらく異なるログの2500番号に注意してください。したがって、カウントを取得するには、「行のマージ」パターンを使用する必要があります。-o、-w grepオプションを試しましたが、機能しません。
上記のデータから期待される出力:
17500
実際の出力を示す:
15000