Shell :将输入行子集添加到前缀挖掘输出
Shell : Add input lines subset to prefix dig output
目前,我以循环方式获得 NS(Name Server)
域列表记录。
#ns_check.sh
for i in $(cat Input.txt);do dig +short NS $i;done
输入文件只有域。
#Input.txt
example.com
hello.com
blah.com
我得到输出,
#Out.txt
ns4.p05.dynect.net.
ns2.p05.dynect.net.
ns1.p05.dynect.net.
ns3.p05.dynect.net.
ns-315.awsdns-39.com.
ns-564.awsdns-06.net.
ns-1162.awsdns-17.org.
ns-1949.awsdns-51.co.uk.
a3.verisigndns.com.
u1.verisigndns.com.
a2.verisigndns.com.
a1.verisigndns.com.
u2.verisigndns.com.
u3.verisigndns.com.
现在,我想让我的 Input.txt 成为
#Input.txt
1,example.com
2,hello.com
3,blah.com
输出必须像
#Out.txt
1,ns4.p05.dynect.net.
1,ns2.p05.dynect.net.
1,ns1.p05.dynect.net.
1,ns3.p05.dynect.net.
2,ns-315.awsdns-39.com.
2,ns-564.awsdns-06.net.
2,ns-1162.awsdns-17.org.
2,ns-1949.awsdns-51.co.uk.
3,a3.verisigndns.com.
3,u1.verisigndns.com.
3,a2.verisigndns.com.
3,a1.verisigndns.com.
3,u2.verisigndns.com.
3,u3.verisigndns.com.
如何将输入 ID
添加到获得的域的每个 NS 记录的输出中? shell 脚本编写的新手,关于如何解决这个问题有什么建议吗?
您可以使用这个 while
循环:
while IFS=, read -r n h; do
printf "$n,%s\n" $(dig +short NS "$h")
done < input.txt
IFS=, read -r n h
会将每个逗号分隔的行读入 2 个变量 n
(数字)和 h
(主机)。
printf "$n,%s\n" $(dig +short NS "$h")
将替换 dig
命令输出中以 $n,
开头的每一行。
目前,我以循环方式获得 NS(Name Server)
域列表记录。
#ns_check.sh
for i in $(cat Input.txt);do dig +short NS $i;done
输入文件只有域。
#Input.txt
example.com
hello.com
blah.com
我得到输出,
#Out.txt
ns4.p05.dynect.net.
ns2.p05.dynect.net.
ns1.p05.dynect.net.
ns3.p05.dynect.net.
ns-315.awsdns-39.com.
ns-564.awsdns-06.net.
ns-1162.awsdns-17.org.
ns-1949.awsdns-51.co.uk.
a3.verisigndns.com.
u1.verisigndns.com.
a2.verisigndns.com.
a1.verisigndns.com.
u2.verisigndns.com.
u3.verisigndns.com.
现在,我想让我的 Input.txt 成为
#Input.txt
1,example.com
2,hello.com
3,blah.com
输出必须像
#Out.txt
1,ns4.p05.dynect.net.
1,ns2.p05.dynect.net.
1,ns1.p05.dynect.net.
1,ns3.p05.dynect.net.
2,ns-315.awsdns-39.com.
2,ns-564.awsdns-06.net.
2,ns-1162.awsdns-17.org.
2,ns-1949.awsdns-51.co.uk.
3,a3.verisigndns.com.
3,u1.verisigndns.com.
3,a2.verisigndns.com.
3,a1.verisigndns.com.
3,u2.verisigndns.com.
3,u3.verisigndns.com.
如何将输入 ID
添加到获得的域的每个 NS 记录的输出中? shell 脚本编写的新手,关于如何解决这个问题有什么建议吗?
您可以使用这个 while
循环:
while IFS=, read -r n h; do
printf "$n,%s\n" $(dig +short NS "$h")
done < input.txt
IFS=, read -r n h
会将每个逗号分隔的行读入 2 个变量n
(数字)和h
(主机)。printf "$n,%s\n" $(dig +short NS "$h")
将替换dig
命令输出中以$n,
开头的每一行。