ターゲット ファイルに対してこの grep を実行すると、たとえば 275 という結果が得られます。
しかし、私はawkを学びたいので、awkでこれを試しました:
awk 'BEGIN { count=0 } /my pattern/ { count++ } END { print count }' myfile.log
そして、これは期待どおりに 275 を出力します。
野心的になったので、次のような awk スクリプトを作成しました。
BEGIN {
print "Log File Analysis";
message=0;
events=0;
}
{
/message/ { messages++; }
/event/ { events++; }
}
END {
print "messages:\t" messages;
print "events:\t" events;
}
構文エラーが発生します。
$ awk -f test_learn.awk test_log.log
awk: test_learn.awk:16: /message/ { messages++; }
awk: test_learn.awk:16: ^ syntax error
私は何を間違っていますか?
Windows 7 で MinGW シェルの awk を使用しています。