在Bash中使用Curl将多个IP地址位置输出为json文件

时间:2016-01-24 00:03:09

标签: json bash curl

我试图完成的是将以下所有步骤和Bash命令组合到一个脚本中,该脚本将生成一个.json文件,该文件包含每个IP地址的所有json格式位置。

步骤1 - 下面的5个变量定义每个命令以读取每个访问日志文件并仅输出IP地址。

a=(cat /media/sf_sandbox/logs/access_log.log |awk '{print $1}' |sort)
b=(cat /media/sf_sandbox/logs/access_log_01.log |awk '{print $1}' |sort)
c=(cat /media/sf_sandbox/logs/access_log_02.log |awk '{print $1}' |sort)
d=(cat /media/sf_sandbox/logs/access_log_03.log |awk '{print $1}' |sort)
e=(cat /media/sf_sandbox/logs/access_log_04.log |awk '{print $1}' |sort)

第2步 - 下面"变量f"将STEP 1变量的每个命令的输出结果加在一起。

f=($a + $b + $c + $d + $e)

第3步 - 下面"变量g"对IP地址的输出列表进行排序并消除重复项。

g=(cat /media/sf_sandbox/logs/ip_sorted.txt |awk '!x[$0]++' ip_sorted.txt)

第4步 - 下面"变量g"输出唯一IP地址的最终结果列表。

echo '$g' ip_sorted.txt

步骤5 - 以下curl命令读取IP地址并以json格式输出最终结果信息。

curl ipinfo.io/5.254.144.88

{
 "ip": "5.254.144.88",
 "hostname": "No Hostname",
 "city": "",
 "region": "",
 "country": "SE",
 "loc": "59.3294,18.0686",
 "org": "AS42708 Portlane AB"

}

我的问题是,有没有办法可以创建一个字符串并连接它来循环遍历ip_sorted.txt中的每个IP地址,以输出所有IP地址的结果 使用curl命令?最后,将结果放在.json文件中。

0 个答案:

没有答案