到目前为止,我有一个脚本,该脚本可以获取访问我的网站的IP地址:
class Car:
def __init__(self, id, top_speed):
self.id = id
self.top_speed = top_speed
def get_id(self):
return self.id
def get_top_speed(self):
return self.top_speed
class Garage:
def __init__(self):
self.cars_holder = {}
def add_car(self, car):
self.cars_holder[car.get_id()] = car
def remove_car(self, car_id):
del self.cars_holder[car_id]
def show_cars(self):
for car in self.cars_holder.values():
print(car)
GARAGE_DICT = [{'id': '1x148i-36y5-5rt2',
'dimensions': {'top': 275,
'left': 279,
'width': 75,
'height': 75},
'attrs': {'weight': 12,
'top_speed': 0.7,
'noise': 0.45
}},
{'id': '223a3-33e5-4ea3',
'dimensions': {'top': 241,
'left': 234,
'width': 71,
'height': 65},
'attrs': {'weight': 12,
'top_speed': 0.74,
'noise': 0.4345
}
}]
if __name__ == "__main__":
garage = Garage()
for car_dict in GARAGE_DICT:
attrs = car_dict['attrs']
dimensions = car_dict['dimensions']
garage.add_car(Car(car_dict['id'], attrs['weight'], attrs['top_speed'], attrs['noise'],
Size(dimensions['top'], dimensions['left'], dimensions['width'], dimensions['height'])))
top_speed_of_first_car_in_garage = garage[0].get_top_speed # ?
我正在尝试使用whois遍历这些ip地址,并使用ip来自的唯一国家/地区列表将其重写为初始文件。
我可以像这样单独进行操作:
sudo awk '{ print $1 } ' /var/log/httpd/access_log | sort | uniq > ~/bad_ips.out
但是我不确定如何遍历文件中的每一个,我们将不胜感激
答案 0 :(得分:0)
xargs
可能符合您的条件。它基本上为传递给其stdin的每一行运行给定命令。您可以在man xargs
上查看更多详细信息。
您还可以通过使用-u
的{{1}}选项并使用sort
本身来匹配模式awk
来减少管道中的命令。
这将满足您的要求:
country
答案 1 :(得分:0)
如果每个条目都在换行符上,则可以使用while循环:
#! /bin/bash
while read line
do
echo $line
done < $1
像这样使用脚本:
./nameOfScript fileWithIps.txt