http://coolshell.cn/articles/9070.html
[0;31;40m5
^[[0;31;40m5.925^[[0m
awk 'substr($4, 11, 10) > 5' ****
ls /data/nginx/logs/access_2014123*.bz2 | xargs -i tar -xjvf {}
grep "task_id=corp_466765_113506124" access_2014121[5,6].log > 20141215_vcf5.txt
awk '{print $10}' 20141215_vcf5.txt > dps_task.txt
实例:
awk '$12==502' /data/nginx/logs/access.log nginx 日志查询返回502的例子
awk 'substr($12, 11, 3)==502'/data/nginx/logs/access.log
命令分析日志
cat *.log >example.log #合并后缀名为log的日志文件,你也可以合并指定的日志
grep "Baiduspider+" example.log >baiduspider.txt #拆分日志
egrep "Baiduspider+|Googlebot" example.log >spider.txt #将包含“Baiduspider”和“Googlebot”的找出来
grep "Baiduspider+" example.log |awk '{print $1 "\t" $4 "\t" $7 "\t" $8 "\t" $9 "\t" $10}' #显示指定的内容
cat access.log |grep Baiduspider |awk '{print $7}'|sort -u|wc #统计不重复的
|awk -F 'kw=' '{print $2}'| 指定分割符为“kw=” 打印第2列
|sort |uniq -c| 取出重复 -c为在前面加一列显示重复个数 必须要先sort下。因为uniq只能排除相邻的相同
sort -n -k1 -r 排序:-k1 按第一列排序 -n 按数字排序 -r 反向排序
|head -n 40 显示前40行
awk '{i=9;while(i<=NF) {print NF,$i;i++}}' 循环 NF是最大列数
awk '{for(i=9;i<=NF;i++) {printf NF,$i}}'
egrep "abc"+"|bcd"| 包含abc或bcd
egrep 'abc|bcd'|
|wc -l 统计数量 -l为行数 -c 字符数
awk '{if ($1<10) {print "00"$1} else if (true){print $2}}' if语句
|awk '{a=a+$0}END{print a/NR}' 统计所有列相加后去平均。 END 只打印最后一个 NR 有多少列
grep PID index.log report.log -c 显示每个文件各有多上行
awk '{print $0}' 显示所有的列
grep -A 4 error a.txt 匹配行和它后4行
grep -B 4 error a.txt 匹配行和它前4行
grep -C 4 error a.txt 匹配行和它前后各4行
grep -v 去除匹配的
sed在后面追加一列
echo "a"|sed 's/$/ abc/'
awk传参数进去 需要加单引号
TIME=100
|sort -r -n -k1|awk '{if ($1>'$TIME') {print ..}
----结束----
http://liyanblog.cn/articles/2012/12/11/1355206944714.html
版权所有 转载请注明出处:linux命令分析日志 grep awk sort - 李岩的博客
[0;31;40m5
^[[0;31;40m5.925^[[0m
awk 'substr($4, 11, 10) > 5' ****
ls /data/nginx/logs/access_2014123*.bz2 | xargs -i tar -xjvf {}
grep "task_id=corp_466765_113506124" access_2014121[5,6].log > 20141215_vcf5.txt
awk '{print $10}' 20141215_vcf5.txt > dps_task.txt
实例:
awk '$12==502' /data/nginx/logs/access.log nginx 日志查询返回502的例子
awk 'substr($12, 11, 3)==502'/data/nginx/logs/access.log
命令分析日志
cat *.log >example.log #合并后缀名为log的日志文件,你也可以合并指定的日志
grep "Baiduspider+" example.log >baiduspider.txt #拆分日志
egrep "Baiduspider+|Googlebot" example.log >spider.txt #将包含“Baiduspider”和“Googlebot”的找出来
grep "Baiduspider+" example.log |awk '{print $1 "\t" $4 "\t" $7 "\t" $8 "\t" $9 "\t" $10}' #显示指定的内容
cat access.log |grep Baiduspider |awk '{print $7}'|sort -u|wc #统计不重复的
|awk -F 'kw=' '{print $2}'| 指定分割符为“kw=” 打印第2列
|sort |uniq -c| 取出重复 -c为在前面加一列显示重复个数 必须要先sort下。因为uniq只能排除相邻的相同
sort -n -k1 -r 排序:-k1 按第一列排序 -n 按数字排序 -r 反向排序
|head -n 40 显示前40行
awk '{i=9;while(i<=NF) {print NF,$i;i++}}' 循环 NF是最大列数
awk '{for(i=9;i<=NF;i++) {printf NF,$i}}'
egrep "abc"+"|bcd"| 包含abc或bcd
egrep 'abc|bcd'|
|wc -l 统计数量 -l为行数 -c 字符数
awk '{if ($1<10) {print "00"$1} else if (true){print $2}}' if语句
|awk '{a=a+$0}END{print a/NR}' 统计所有列相加后去平均。 END 只打印最后一个 NR 有多少列
grep PID index.log report.log -c 显示每个文件各有多上行
awk '{print $0}' 显示所有的列
grep -A 4 error a.txt 匹配行和它后4行
grep -B 4 error a.txt 匹配行和它前4行
grep -C 4 error a.txt 匹配行和它前后各4行
grep -v 去除匹配的
sed在后面追加一列
echo "a"|sed 's/$/ abc/'
awk传参数进去 需要加单引号
TIME=100
|sort -r -n -k1|awk '{if ($1>'$TIME') {print ..}
----结束----
http://liyanblog.cn/articles/2012/12/11/1355206944714.html
版权所有 转载请注明出处:linux命令分析日志 grep awk sort - 李岩的博客