這是我的代碼。
#!/bin/bash
for domain in google.com twitter.com
do
ns_record=$(dig NS short $domain)
echo "$domain" "," "$ns_record" >> output.csv
done
它會生成下圖中提到的輸出。

我想要以下格式的輸出。

我的代碼應該是什么?
uj5u.com熱心網友回復:
您可以將ns_record輸出保存為陣列,然后在您選擇的列位置回圈輸出陣列。您必須為結束時的第一條記錄輸出做一個特殊情況$domain,但這一切都很簡單printf。
例如,您可以修改腳本以執行以下操作:
#!/bin/bash
declare -i col2pos=20 ## set column 2 position
for domain in google.com twitter.com; do
ns_record=($(dig NS short $domain)) ## create array of dig output
nsspaces=$(( col2pos - ${#domain} )) ## get no. of chars in domain
## output domain followd by nsspaces spaces and first element of ns_record
printf "%s%*s%s\n" "$domain" "$nsspaces" " " "${ns_record[0]}"
## loop outputting remaining ns_record at col2pos
for ((i=1; i< ${#ns_record[@]}; i )); do
printf "%*s%s\n" "$col2pos" " " "${ns_record[i]}"
done
done
(你可以隨意設定$col2pos)
示例使用/輸出
$ bash ns_record.sh
google.com ns2.google.com.
ns1.google.com.
ns3.google.com.
ns4.google.com.
twitter.com a.r06.twtrdns.net.
d.r06.twtrdns.net.
ns4.p34.dynect.net.
ns1.p34.dynect.net.
d01-01.ns.twtrdns.net.
c.r06.twtrdns.net.
d01-02.ns.twtrdns.net.
b.r06.twtrdns.net.
ns2.p34.dynect.net.
ns3.p34.dynect.net.
已排序ns_record
您可能希望ns_record資訊的輸出顯示已排序。您可以輕松地通過管道輸出digto sort,例如
ns_record=($(dig NS short $domain | sort)) ## create array and sort
排序輸出
現在您的輸出顯示為:
$ bash ns_record.sh
google.com ns1.google.com.
ns2.google.com.
ns3.google.com.
ns4.google.com.
twitter.com a.r06.twtrdns.net.
b.r06.twtrdns.net.
c.r06.twtrdns.net.
d.r06.twtrdns.net.
d01-01.ns.twtrdns.net.
d01-02.ns.twtrdns.net.
ns1.p34.dynect.net.
ns2.p34.dynect.net.
ns3.p34.dynect.net.
ns4.p34.dynect.net.
我發現這更容易瀏覽。
如果您有任何問題,請告訴我。
uj5u.com熱心網友回復:
在每個換行符后插入一個逗號ns_record:
echo "$domain,${ns_record//$'\n'/$'\n',}"
uj5u.com熱心網友回復:
使用awk格式化printf輸出:
#!/bin/bash
for domain in google.com twitter.com ; do
col1="$domain"
for col2 in $(dig NS short "$domain") ; do
printf '%-15s %s\n' "$col1" "$col2"
col1=" "
done
done
google.com ns1.google.com.
ns3.google.com.
ns4.google.com.
ns2.google.com.
twitter.com b.r06.twtrdns.net.
d01-01.ns.twtrdns.net.
d.r06.twtrdns.net.
d01-02.ns.twtrdns.net.
ns2.p34.dynect.net.
ns1.p34.dynect.net.
a.r06.twtrdns.net.
c.r06.twtrdns.net.
ns4.p34.dynect.net.
ns3.p34.dynect.net.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/515328.html
標籤:重击壳嘘
上一篇:程式不會從文本檔案中讀取數字
