이 형식의 이전 도메인 영역 파일이 있습니다.
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.