Преобразование старого файла зоны 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. ... 

Есть ли простой способ сделать это? Возможно, какой-то инструмент командной строки linux? Я могу написать сценарий для этого, но, боюсь, я могу совершить много ошибок. Файл составляет около 20 МБ, и я не могу сделать это вручную.

Использовать awk :

 awk 'NF>3{x=$1} NF<=3{$1=x" "$1}1' file 
  • Если количество полей больше 3, сохраните первое значение поля ( $1 ) в переменной x .
  • Если число полей меньше, чем 3, добавьте значение x в первое поле строки.

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.