源码如下:
#awk内部参数及命令行内参数使用方式,参考代码内及源码末尾
#统计目标文件指定数值,即json格式条目count
#!/bin/bash
#目标文件根目录
root_path=$(cd "$(dirname "$0")"; pwd)
#当前目录统计,并排除_01关键字目录
log_path=`ls -l | grep "^d" | grep -v "_01" | awk '{print $9}' | cat | xargs`
count=0
total=0
#外部文件夹路径变量
date_dir=$1
h_flag=$2
#默认日志2017-07-06
#if [ "$date_dir" = "" ]
if [ -z "$date_dir" ]
then
date_dir=2017-07-06
fi
if [ "$h_flag" = "" ]
then
h_flag=15
fi
#for循环统计
for path in $log_path
do
#切换目录
cd $root_path/$path/$date_dir
#统计awk切割后的数。命令行内参数引用方式,awk内部参数引用进源码末尾
count=`file=$date_dir;flag=$h_flag;awk -F "[" '{print $1};' "$file"_"$flag"* | awk -F ":" '{print $8}' | awk -F "," '{print $1}' | awk '{count+=$1};END{print count}'`
#目标值加入总统计数
total=$[$total+$count]
echo $path
echo $count
#echo $total
done
#输出总统计数
echo $total
#ADD awk 内部参数引用
#awk -v b="started >>" -F "[" 'BEGIN{print b};{print $1};' *.log