**概要 [#b02b051c]
引数で引き渡されたログファイルより、10分単位でログ出力されている行数をカウントアップしてファイルに出力する。~
~
-ログの書式は以下であることが前提
日付 HH:MM:SS ログ内容
-出力は以下となる
日付 HH:MM,件数
~
出力先は、引数に渡されたファイル名に「.out.txt」を付与した名称となる。~
同名のファイルがある場合は破棄し、新規に作成して出力するので注意すること。~
**コード [#dfe6c317]
#!/bin/sh
# ------------------------
# Log Count Script
# ------------------------
# Version : 1.0
# date : 2009/09/30
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
## Set
LIST=$1
OUTPUT=$1".out.txt"
DATE=`date +%Y/%m/%d\ %H:%M:%S`
## Check
test -r $OUTPUT && rm $OUTPUT
## Exec
# Day
WC=`cat $LIST | awk '{print $1}' | sort | uniq | sed -e '/^$/d' | wc -l | awk '{print $1}'`
i=1
while [ $i -le $WC ];
do
DAY=`cat $LIST | awk '{print $1}' | sort | uniq | sed -e '/^$/d' | sed -n -e ${i}"p"`
# Hour
HORWC=`cat $LIST | grep $DAY | awk '{print $2}' | awk 'BEGIN{FS=":"}{print $1}' | sort | uniq | wc -l | awk '{print $1}'`
j=1
while [ $j -le $HORWC ];
do
HOUR=`cat $LIST | grep $DAY | awk '{print $2}' | awk 'BEGIN{FS=":"}{print $1}' | sort | uniq | sed -e '/^$/d' | sed -n -e ${j}"p"`
#Minit
k=0
while [ $k -le 6 ];
do
COUNT=`cat $LIST | grep $DAY" "$HOUR":"$k | wc -l | awk '{print $1}'`
echo $DAY" "$HOUR":"$k"0,"$COUNT >> $OUTPUT
k=$(($k+1))
done
j=$(($j+1))
done
i=$(($i+1))
done
# EOF