이전 DNS 영역 파일을 새로운 형식으로 변환

이전 DNS 영역 파일을 새로운 형식으로 변환

이 형식의 이전 도메인 영역 파일이 있습니다.

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.  
...

이렇게 변환하고 싶어요

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.  
...

이를 수행하는 쉬운 방법이 있습니까? 어쩌면 리눅스 명령줄 도구일까요? 이를 위해 스크립트를 작성할 수 있지만 실수가 많을까봐 걱정됩니다. 파일이 약 20MB인데 수동으로 할 수는 없습니다.

답변1

사용 awk:

awk 'NF>3{x=$1} NF<=3{$1=x" "$1}1' file
  • 필드 수가 3보다 크면 첫 번째 필드 값( $1)이 변수에 저장됩니다 x.
  • 필드 수가 3보다 작거나 같으면 값이 x행의 첫 번째 필드에 추가됩니다.

산출:

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.

관련 정보