我想分析一個真正巨大的日誌文件,這裏例如快捷方式: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