サーバーを勉強している初心者です。
シェルスクリプトを作りアクセスログを集計したいのですが、
やり方が分かりません。
ディレクトリに5年分くらいの日付のあるファイルがあり、
その一つ一つのファイルの中身を集計したいです。
また、集計項目はいくつかあり、これからも増えるかもしれません。
このログの集計結果を1日毎で表示できるようにするには、
for文を利用するのかな?と思ったのですが、
どのようにすればできますでしょうか?
理想としては、
2015-12-5
123 123:a
25 123:b
345 123:c
2015-12-6
356 123:a
56 123:b
456 123:c
56 123:d
・
・
・
のような形で表示させたいです。
自分で試してみると、ファイル内全ての日付から集計した結果が表示されてしまいます。
grep "123" /aaa/bbb/ccc/access-log-2015-* | grep "456"| awk '{print $1 $5 $6}' | sort | uniq -c
479 123:a
81 123:b
801 123:c
56 123:d
上記のような感じになってしまいます。
access-log-2015-*の部分が原因だと思うのですが、
どのようにすれば1日毎で表示されるのかが分かりません。
シェルスクリプトを作りたいが、
その前のコマンドの部分でつまずいている状態です。
初歩的な質問で申し訳ありません。
回答頂ければ幸いです。
よろしくおねがい致します。
回答2件
あなたの回答
tips
プレビュー