Bash 用AWK修复演示文稿
我正在创建一个小脚本,用于读取包含域列表的文件的内容。然后通过dig+short将域传输到提取其IP地址,然后通过geoiplookup将每个IP传输到其原始县,并使用AWK以以下格式显示它们:Bash 用AWK修复演示文稿,bash,awk,geoip,Bash,Awk,Geoip,我正在创建一个小脚本,用于读取包含域列表的文件的内容。然后通过dig+short将域传输到提取其IP地址,然后通过geoiplookup将每个IP传输到其原始县,并使用AWK以以下格式显示它们: IP Address , Country IP Address , Country IP Address , Country IP Address , Country IP Address , Country for domain in $(cat "$1"); do dig +short $doma
IP Address , Country
IP Address , Country
IP Address , Country
IP Address , Country
IP Address , Country
for domain in $(cat "$1"); do dig +short $domain | tr '\n' ' ' >> Blacklist.csv | geoiplookup $domain | awk 'NR==1{print ","$5,$6,$7,$8}' >> Blacklist.csv ; done
现在,我发现底部显示的第一个IP地址有问题,如下所示:
, Country
IP Address , Country
IP Address , Country
IP Address , Country
IP Address , Country
IP Address
关于如何整理我的演讲有什么想法吗
=======================================================================
编辑:
ryan@ubuntu:~/Desktop$ for domain in $(cat stackdemo.txt); do dig +short $domain ; done
69.25.240.212
185.199.108.153
45.55.41.223
209.51.188.148
ryan@ubuntu:~/Desktop/Demo$ cat Blacklist.csv
,United States
69.25.240.212 ,Netherlands
185.199.108.153 ,United States
45.55.41.223 ,United States
209.51.188.148
-如您所见,单元格A1中的IP地址被错误地放置在单元格A5中
编辑2:样本
输入文件-包含域列表的文本文件:
helloworld.com
rubyonrails.org
sublimetext.com
gnu.org
挖掘输出:
ryan@ubuntu:~/Desktop$ for domain in $(cat stackdemo.txt); do dig +short $domain ; done
69.25.240.212
185.199.108.153
45.55.41.223
209.51.188.148
ryan@ubuntu:~/Desktop/Demo$ cat Blacklist.csv
,United States
69.25.240.212 ,Netherlands
185.199.108.153 ,United States
45.55.41.223 ,United States
209.51.188.148
最终组合输出:
ryan@ubuntu:~/Desktop$ for domain in $(cat stackdemo.txt); do dig +short $domain ; done
69.25.240.212
185.199.108.153
45.55.41.223
209.51.188.148
ryan@ubuntu:~/Desktop/Demo$ cat Blacklist.csv
,United States
69.25.240.212 ,Netherlands
185.199.108.153 ,United States
45.55.41.223 ,United States
209.51.188.148
=======================================================================
非期望输出
ryan@ubuntu:~/Desktop/Demo$ cat Blacklist.csv
,United States
69.25.240.212 ,Netherlands
185.199.108.153 ,United States
45.55.41.223 ,United States
ryan@ubuntu:~/Desktop/Demo$ cat Blacklist.csv
209.51.188.148 ,United States
69.25.240.212 ,Netherlands
185.199.108.153 ,United States
45.55.41.223 ,United States
209.51.188.148
所需输出
ryan@ubuntu:~/Desktop/Demo$ cat Blacklist.csv
,United States
69.25.240.212 ,Netherlands
185.199.108.153 ,United States
45.55.41.223 ,United States
ryan@ubuntu:~/Desktop/Demo$ cat Blacklist.csv
209.51.188.148 ,United States
69.25.240.212 ,Netherlands
185.199.108.153 ,United States
45.55.41.223 ,United States
我仍然不完全清楚,假设您的
dig
命令和geoiplookup
命令不会给出空输出,如果是这种情况,请尝试
while read line
do
dig "$line" > "dig_output"
geoiplookup "$line" > "lookup_output"
done < "domain_file"
公平警告:由于缺少软件,我还没有测试过它。如果我得到正确的结果,您希望对输入文件中的所有IP运行
dig
命令。如果是这种情况,那么您能否在您的帖子中提及输入文件的虚拟样本(带IP)和dig
输出的虚拟样本(用于1 IP和最终总输出),然后让我们知道?我不明白…|tr…>>Blacklist.csv | geoiplookup
。>
和|
的组合真的是你想要的吗?请在你的帖子中发布你的样本(文本),不要以图片或链接的形式发布@NigerianWizard@RavinderSingh13样品posted@NigerianWizard,好的,让我重新表述一下。您有一个域列表,您正在传递或希望传递到dig
以获取其IP。一旦你得到了它们,你就把它们传递给geoiplookup
;您在重新分配其输出时面临的问题,我说的对吗?如果是,那么您可以简单地告诉我们非期望输出
,然后期望输出
,因为您的帖子中仍然不清楚。因为您的预期输出中缺少某个ip或某个国家/地区,所以不清楚,请提供更多详细信息。@NigerianWizard,请您尝试一下上面的内容并告诉我好吗?如果这不起作用,那么将dig+short$domain | tr'\n'>>Blacklist.csv | geoiplookup$domain
的输出也粘贴一次?