我试图完成的是将以下所有步骤和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文件中。