我正在尝试从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可以做的事情,我将如何做到这一点?到目前为止,我是任何一位专家。
先谢谢!
答案 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 /'