Converta o arquivo de zona DNS antigo em novo formato

1

Eu tenho esse antigo arquivo de zona de domínio com este formato

ZZYZX IN NS DNS1.NAME-SERVICES.COM. 
        IN NS DNS2.NAME-SERVICES.COM. 
        IN NS DNS3.NAME-SERVICES.COM.   
        IN NS DNS4.NAME-SERVICES.COM.  
ZZYZXX IN NS NS.HOSTDEZINA.COM. 
        IN NS NS2.HOSTDEZINA.COM.  
...

Eu quero convertê-lo assim

ZZYZX IN NS DNS1.NAME-SERVICES.COM. 
ZZYZX IN NS DNS2.NAME-SERVICES.COM. 
ZZYZX IN NS DNS3.NAME-SERVICES.COM.   
ZZYZX IN NS DNS4.NAME-SERVICES.COM.  
ZZYZXX IN NS NS.HOSTDEZINA.COM. 
ZZYZXX IN NS NS2.HOSTDEZINA.COM.  
...

Existe alguma maneira fácil de fazer isso? Provavelmente alguma ferramenta de linha de comando do Linux? Eu posso escrever script para fazer isso, mas eu tenho medo de cometer muitos erros. O arquivo tem cerca de 20MB e não consigo fazer isso manualmente.

    
por nacholibre 18.09.2015 / 13:50

1 resposta

2

Use awk :

awk 'NF>3{x=$1} NF<=3{$1=x" "$1}1' file
  • Se o número de campos for maior que 3, salve o primeiro valor de campo ( $1 ) na variável x .
  • Se o número de campos for menor que 3, prefixar o valor de x no primeiro campo da linha.

Ouput:

ZZYZX IN NS DNS1.NAME-SERVICES.COM.
ZZYZX IN NS DNS2.NAME-SERVICES.COM.
ZZYZX IN NS DNS3.NAME-SERVICES.COM.
ZZYZX IN NS DNS4.NAME-SERVICES.COM.
ZZYZXX IN NS NS.HOSTDEZINA.COM.
ZZYZXX IN NS NS2.HOSTDEZINA.COM.
    
por 18.09.2015 / 14:01