我正在尝试从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专家。
在进阶时谢谢!
发布于 2013-04-17 04:10:15
这可能适用于您(GNU sed):
sed -r 's/\..*(\sPTR)/\1/' file发布于 2013-04-17 03:17:31
我认为这就是你想要的:
sed 's/\s\{1,\}/ /g;s/\([^.]*\).*PTR /\1 PTR /;s/^\(........\) */\1/'其中一些只是为了获得您在所需输出中显示的间距,如果您想要的只是单倍间距的字段,则可以这样做:
sed 's/\s\{1,\}/ /g;s/\([^.]*\).*PTR /\1 PTR /'https://stackoverflow.com/questions/16044746
复制相似问题