0

我正在尝试从 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 可以做的事情吗?我将如何去做?到目前为止,我是任何 sed 专家。

先谢谢了!

4

2 回答 2

2

这可能对您有用(GNU sed):

sed -r 's/\..*(\sPTR)/\1/' file
于 2013-04-16T20:10:15.217 回答
0

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

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

其中一些只是为了获得您在所需输出中显示的间距,如果您想要的只是单行距字段,则可以这样做:

sed 's/\s\{1,\}/ /g;s/\([^.]*\).*PTR /\1 PTR /'
于 2013-04-16T19:17:30.800 回答