我想分析一个真正巨大的日志文件,这里例如快捷方式:shell脚本解析一个巨大的日志文件
===== fspCIV0
/vol/vol0 -sec=sys,rw=fspsanp42.net,root=fspsanp42.net,nosuid
===== fcvCIS01
/vol/ARDW -sec=sys,rw
/vol/ARDW -sec=sys,rw
/vol/ARDW -sec=sys,rw,nosuid
/vol/ARDW -sec=sys,rw
/vol/ARDW -sec=sys,rw=none
/vol/lonulixda -sec=sys,rw=fcvsan10.net:fcvsan11.net,root=fcvsan10.net:fcvsan11.net
它继续这样了几页......
的所需的输出应为:
vFiler, Type, host
fspCIV0, /vol/vol0, fspsanp42.net
fcvCIS01, /vol/lonulixda, fcvsan10.net
fcvCIS01, /vol/lonulixda, fcvsan11.net
的vFiler线总是以“=====”后跟一个字符串 此后每隔一行开始与“/体积/ ...”,这意味着启动是类型,所以f我已经设法获取信息,但真正的问题始于'rw = or ro ='(并在'root ='之后重复)后列出的服务器名称。
它应该忽略在rw =或ro =之后没有列出任何服务器的每一行。
即使使用相同类型的每个新服务器,我想开始一个新行,如果列出了多个服务器,它们被':'分隔。
我认为可以用包含IFS':'的循环列出它。 但我不太清楚如何写它...
有人可以帮助我吗?在此先感谢
我有尝试过:
awk -v RS="=====" -v OFS="," 'BEGIN {print "vFiler", "Type" } NF{print $1, $2}'
和while循环我认为这可能是工作:
while IFS=':' read -r host $1-$#;
,但我不知道如果循环是正确的或在哪里放它。
这应该是你r第一个问题,而不是[this](http://stackoverflow.com/q/26587589/2088135) – 2014-10-27 14:06:26
在前面的问题中,你得到了一些结果。你尝试过与他们玩吗? – fedorqui 2014-10-27 14:06:37
是啊我已经有了一个IFS循环,然后我问了第一个问题,并想自己尝试,但它不工作 – howdoesthiswork 2014-10-27 14:10:45