ฉันมีไฟล์ชื่อhostlist.txt
ที่มีข้อความเช่นนี้:
host1.mydomain.com
host2.mydomain.com
anotherhost
www.mydomain.com
login.mydomain.com
somehost
host3.mydomain.com
ฉันมีสคริปต์เล็ก ๆ ต่อไปนี้:
#!/usr/local/bin/bash
while read host; do
dig +search @ns1.mydomain.com $host ALL \
| sed -n '/;; ANSWER SECTION:/{n;p;}';
done <hostlist.txt \
| gawk '{print $1","$NF}' >fqdn-ip.csv
ซึ่งส่งออกไปที่fqdn-ip.csv
:
host1.mydomain.com.,10.0.0.1
host2.mydomain.com.,10.0.0.2
anotherhost.internal.mydomain.com.,10.0.0.11
www.mydomain.com.,10.0.0.10
login.mydomain.com.,10.0.0.12
somehost.internal.mydomain.com.,10.0.0.13
host3.mydomain.com.,10.0.0.3
คำถามของฉันคือฉันจะลบ.
ก่อนจุลภาคโดยไม่ต้องกล่าวอ้างsed
หรือgawk
อีกครั้งหรือไม่ มีขั้นตอนที่ฉันสามารถแสดงในสายที่มีอยู่sed
หรือgawk
สายที่จะตัดจุดได้หรือไม่?
hostlist.txt
จะมีโฮสต์ 1,000 แห่งดังนั้นฉันต้องการให้สคริปต์ของฉันเร็วและมีประสิทธิภาพ
dig +short
ไม่ได้ผลสำหรับคุณ