linux:怎样从复杂的log中提取信息

例如在文件1.log中
id=1
a=1,b=2,c=3,d=4,e=5....,z=100id=2
a=3,b=4,d=20,e=6,f=7,...,z=30id=3
a=4,b=4,c=2,d=5,e=8,...,z=29....
现在我想统计在log中d的分布~
有什么好方法吗?grep每次都是输出整行,没法提取一个关键词的信息。
holdtom
浏览 310回答 2
2回答

湖上湖

awk的解法:#!/bin/bashawk-F","'NF==0{next}#skipblanklineNF==1{printf"%s",$1}#foridline#fordataline{for(i=1;i

元芳怎么了

先去掉id=中的d=,然后grep-o参数提取匹配的模式。再把数字再抓出来,awk或者cut就可以了。grep-v"id=[0-9]*"1.log|grep-o"d=[0-9]*"|awk-F'=''{print$2}'或者,用egrep,grep-v"id=[0-9]*"1.log|egrep-o"d=[0-9]+"|cut-d'='-f2方法还是多啦,其他sed那些都可以用;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript