今天来点实战的吧。
#查看日志中包含test的行数
cat stdout.log | grep "test" | wc -l
#取包含“INFO”、"events"的行,并取出倒数第五个数字,作和,输出
cat stdout.log | grep INFO | grep events | awk '{c+= $(NF-4)} END{print c}'
#同上,取倒数第二个数字,作和,输出
cat stdout.log | grep INFO | grep events | awk '{c+= $(NF-1)} END{print c}'
#查看ERROR、INFO、WARN,以及其它
cat stdout.log | grep ERROR | less
cat stdout.log | grep INFO | less
cat stdout.log | grep WARN | less
cat stdout.log | grep -v WARN |grep -v INFO | grep -v ERROR| less // grep -v 是输出不包含相应字符串的行
#显示7天前日期(160129)(大Y20160129)
date -d '7 days ago' +%y%m%d
#shell批量删除pid
ps -ef | grep flume-core_access | grep -v grep | awk '{print $2}' | xargs kill -9
tail test_log.log | awk -F '["]' '{printf("%s ",$4);cmd="echo -n "$2 " | \ #以"为分隔,输出$4,并对$2进行64解码
base64 -d";printf("%s\n",system(cmd));}' | awk -F '[|]' '{print $1}' | \ #对$4和解码的$2,以|分隔,输出$1
sed -e 's/visitor/0/g' | sed -e 's/qq/2/g' | sed -e 's/weibo/3/g' #用sed进行替换
#统计行数,按大小排序输出
cat stat_login.log | sort | uniq -c | sort -nr
#window 回车去掉
sed -i 's/\r//g' mingan.txt
#使用命令: (pid为被测系统的进程号),找到导致cpu高的线程id。
top -H -p 4118(pid)
#shell 执行 mysql 语句
mysql -P3307 -ucmtadmin -pcmtadmin -S /opt/data/mysql/3307/my3307.sock -Dgreenskin_tmp<executorStd.sql