我有一个包含文本的大日志文件,如下所示:
C:\>mml "hgsdp:imsi=404421896673168, all;" | findstr CSP
C:\>mml "hgsdp:imsi=404421911915615, all;" | findstr CSP
RSA-5 PDPCP-5 CSP-42 REDMCH-1
C:\>mml "hgsdp:imsi=404421800964442, all;" | findstr CSP
BS3G-1 RSA-5 PDPCP-5 CSP-40
C:\>mml "hgsdp:imsi=404421737909153, all;" | findstr CSP
C:\>mml "hgsdp:imsi=404421852512826, all;" | findstr CSP
RSA-5 PDPCP-5 CSP-21 REDMCH-1我对获取CSP-#值感兴趣,该值位于"imsi=4044##“下,并与相应的4044##编号一起写入另一个文件。因此,该示例的最终输出将是:
404421896673168 NIL
404421911915615 CSP-42
404421800964442 CSP-40
404421737909153 NIL
404421852512826 CSP-21我试过使用awk,但无法使它工作:
awk '/4044%/{N=NR+1;next} NR==N{print $3}' csp.log > output.txt感谢你能帮上忙。
发布于 2016-03-22 11:54:48
您可以使用这个awk:
awk -F '[[:blank:]:=,]+' '/findstr CSP/ && $4=="imsi" {
if (imsi != "")
print imsi, "NIL"
imsi=$5
next
}
/CSP-/ {
for(i=1; i<=NF; i++)
if ($i ~ /CSP-/)
break
print imsi, $i
imsi=""
}' file
404421896673168 NIL
404421911915615 CSP-42
404421800964442 CSP-40
404421737909153 NIL
404421852512826 CSP-21https://stackoverflow.com/questions/36153265
复制相似问题