我正在做一个脚本,它使用nmap来获取ip地址范围上的所有设备以及它们的mac地址。我想为每个设备创建一个文件,比如IPaddress_macaddress。我这样做是为了获得值,但我不知道如何动态创建文件。
sudo nmap -n -sP 192.168.1.* |
awk '/Nmap scan report/{printf $5;printf " ";getline;getline;printf $3;}' > file.txt这在file.txt上打印:
192.168.1.10 DC:EX:03:0S:4B:31
192.168.1.11 A4:2G:8C:E8:5A:65
192.168.1.32 9C:80:GF:J0:53:6F
192.168.1.23 64:7C:54:CC:SD:C4
192.168.1.77 256此文件的格式为
ipaddress macaddress我希望解析该文件,为每一行创建一个新文件,其中包含每一行内容的名称,在ipaddress和macaddress之间添加一个下划线。与ipaddress_macaddress.txt相对应
因此,对于那个file.txt,使用一个脚本,我希望它创建192.168.1.10_DC:EX:03:0S:4B:31.txt等
我不知道怎么才能聪明地解析它
发布于 2017-07-02 21:17:00
$ ls
file
$ while read ip mac; do touch ${ip}_${mac}.txt; done < file
$ ls
192.168.1.10_DC:EX:03:0S:4B:31.txt 192.168.1.23_64:7C:54:CC:SD:C4.txt 192.168.1.77_256.txt
192.168.1.11_A4:2G:8C:E8:5A:65.txt 192.168.1.32_9C:80:GF:J0:53:6F.txt file发布于 2017-07-03 10:43:52
作为一架awk飞机,你可以:
nmap -n -sP 192.168.1.* | awk '{ if ($0 ~ /Nmap scan/) { ip=$5 } if ($0 ~ /MAC/) { mac=$3;det[mac]=ip } } END { for ( i in det ) { system("echo \""i" "det[i]"\" > "i"_"det[i]".txt") } }'这将从nmap获取输出,然后搜索"Nmap扫描“,并将ip地址放置在可变ip中,然后" mac”将mac地址放置在mac中。然后用ip地址和MAC地址创建数组。然后将其循环通过,并使用awk系统功能创建具有ip和MAC地址的文件。
https://stackoverflow.com/questions/44870929
复制相似问题