Ваш скрипт выглядит так, как будто вы должны переписать все это в Awk; но вот простой Bash скрипт, который, как мы надеемся, предлагает хотя бы подсказку о том, как можно упростить ваш скрипт, если вы действительно хотите написать его в Bash.
#!/bin/bash
split () {
local IFS='.'
printf ' %s' $*
}
while read ptr fqdn; do
ips=($(split "$ptr"))
domain=${fqdn#*.}
host=${fqdn%.$domain}
echo "ipa dnsrecord-add ${domain%.} $host --a-rec ${ips[3]}.${ips[2]}.${ips[1]}.${ips[0]}"
done <<\:
251.2.168.192.in-addr.arpa core.admin.my.lan.
:
Вывод:
ipa dnsrecord-add admin.my.lan core --a-rec 192.168.2.251
Вот быстрое и грязное переопределение Awk.
awk '{ split($1, rev, /[.]/); split($2, fqdn, /[.]/);
domain=$2; sub("^" fqdn[1] "[.]", "", domain); sub(/[.]$/, "", domain);
print "ipa dnsrecord-add", fqdn[1], domain,\
"--a-rec", rev[4] "." rev[3] "." rev[2] "." rev[1] }' reverse_entries.txt