1
私は、次のようなテキストで大きなログファイルがあります。読書やテキストファイルに一致するパターンを書き込む
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をつかんで興味を持っています - ### = 4044#IMSI」の下に来る値# "を入力して、対応する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
は感謝しています。
それは素晴らしいanubhavaに動作します。心配するのは、 "4044 ##"が時々繰り返され、CSP - ##が1回だけ出現することです。だから、私がawkを走らせると、同じ4044 ###のためにCSP - ##値の両方をNILに与えます。助言がありますか ? – slyclam
このawkコマンドは実際に '4044 ...'文字列を検索していません。それは '$ 5'を得るだけです。問題のサンプルデータを出力してみたところ、それは良いと思われます。 – anubhava
私は今理解しています。ありがとうございました。 – slyclam