例如在文件1.log中
id=1
a=1,b=2,c=3,d=4,e=5....,z=100
id=2
a=3,b=4,d=20,e=6,f=7,...,z=30
id=3
a=4,b=4,c=2,d=5,e=8,...,z=29
....
现在我想统计在log中d的分布~
有什么好方法吗? grep每次都是输出整行,没法提取一个关键词的信息。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
awk的解法:
结果如下:
id=1 d=4
id=2 d=20
id=3 d=5
awk的好处在于可以对输入/输出的格式作比较精细的处理。
先去掉id=中的d=, 然后
grep -o 参数 提取匹配的模式。 再把数字再抓出来, awk或者cut就可以了。
或者, 用egrep,
方法还是多啦, 其他sed那些 都可以用;
给个其他思路...
mv 1.log /opt/www/1.log
然后用php脚本来处理,新建一个1.php.脚本如下:
这个比较适合用 awk 或者 flex 来做。
flex:
这种 log 处理 awk、perl、ruby 都行。上个 perl 版
用Python吧,什么OS下面都很好用。
用cut命令吧。
cut -d '分割字符' -f '选取第几段的意思'
好像还有个参数 -c。
可以自己man 一下。