Tôi có một tệp được gọi hostlist.txt
có chứa văn bản như thế này:
host1.mydomain.com
host2.mydomain.com
anotherhost
www.mydomain.com
login.mydomain.com
somehost
host3.mydomain.com
Tôi có đoạn script nhỏ sau:
#!/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
Đầu ra nào 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
Câu hỏi của tôi là làm thế nào để tôi loại bỏ .
ngay trước dấu phẩy mà không cần gọi lại sed
hoặc gawk
một lần nữa? Có một bước tôi có thể thực hiện trong các cuộc gọi hiện có sed
hoặc gawk
sẽ xóa dấu chấm?
hostlist.txt
sẽ chứa 1000 máy chủ lưu trữ vì vậy tôi muốn kịch bản của mình nhanh và hiệu quả.
dig +short
không làm việc cho bạn?