2

txt ファイルにエクスポートした AXFR ファイルの一部であるファイルを読み込んでいます。基本的に、私catはファイルを取り出し、PTRレコードのみを grep します (私は今、これらにのみ興味があります)。を使ってみましawkたが、awk の全体的な知識が限られているため、まだ広範囲に学習する予定はありません。ファイルの種類は次のとおりです。

1.0.0.10.in-addr.arpa. 1800 IN  PTR name-1.something.something.else.  
2.0.0.10.in-addr.arpa. 1800 IN  PTR name-2.something.something.else.  
3.0.0.10.in-addr.arpa. 1800 IN  PTR name-3.something.something.else.  
4.0.0.10.in-addr.arpa. 1800 IN  PTR name-4.something.something.else.  
5.0.0.10.in-addr.arpa. 1800 IN  PTR name-5.something.something.else. 

出力が必要なのは、IPアドレス(逆にする必要がある)、PTR、そしてそれが指している実際のレコードであるため、上記のものからの出力は次のようになります。

10.0.0.1    PTR     name-1.something.something.else.  
10.0.0.2    PTR     name-1.something.something.else.  
10.0.0.3    PTR     name-1.something.something.else.  
10.0.0.4    PTR     name-1.something.something.else.  
10.0.0.5    PTR     name-1.something.something.else. 

これは awk でできることですか。私はそれを機能させるのに問題があり、論理的にこれを機能させる方法について立ち往生しています。

4

3 に答える 3

2

ファイルから読み取ってパターン マッチングを実行できるため、catまたはを使用する必要はありません。grepawk

awk '/PTR/ { split($0, ip, /\./);
             printf("%s.%s.%s.%s\tPTR\t%s\n", ip[4], ip[3], ip[2], ip[1], $NF);
           }' filename
于 2013-05-21T19:15:40.317 に答える
0

シードのみ:

sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\).\([0-9]*\).*\(PTR\)/\4.\3.\2.\1\t\5\t/' file
于 2013-05-21T20:21:19.447 に答える