Tôi có một tệp được gọi hostlist.txtcó 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 sedhoặc gawkmộ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ó sedhoặc gawksẽ 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 +shortkhông làm việc cho bạn?