sed - 反向DNS提取

时间:2013-04-16 18:47:46

标签: dns sed extract

我正在尝试从Microsoft区域中提取DNS PTR记录,以便我可以将它们分阶段导入到BIND区域。我有所有的逆转,它们采用以下格式:

1.0.0.10.in-addr.arpa.  1200    IN  PTR my.long.domain.net.
22.0.0.10.in-addr.arpa. 1200    IN  PTR your.long.domain.net.
33.0.0.10.in-addr.arpa. 1200    IN  PTR our.long.domain.net.

我要做的是提取初始八位字节(在这种情况下,每行中的1,22和33 - 在开头),但后来我要删除其他所有内容,一直到“PTR”项目。然后我想保留“PTR”项目以及实际的反向(例如my.long.domain.net。所以,我的猜测是使用sed和我想要最终得到的输出(使用示例)从上面),将是:

1       PTR     my.long.domain.net.
22      PTR     your.long.domain.net.
33      PTR     our.long.domain.net.

这是sed可以做的事情,我将如何做到这一点?到目前为止,我是任何一位专家。

先谢谢!

2 个答案:

答案 0 :(得分:2)

这可能适合你(GNU sed):

sed -r 's/\..*(\sPTR)/\1/' file

答案 1 :(得分:0)

我认为这可以满足您的需求:

 sed 's/\s\{1,\}/ /g;s/\([^.]*\).*PTR /\1       PTR     /;s/^\(........\) */\1/'

其中一些只是为了获得您在所需输出中显示的间距,如果你想要的只是单个间隔字段,那么这样做:

sed 's/\s\{1,\}/ /g;s/\([^.]*\).*PTR /\1 PTR /'