我将如何向文件添加新数据?

我将如何向文件添加新数据?

所以!我有一个 nmap 扫描,将输出保存到文件中,nmapscan.txt

sudo nmap -sP 192.168.1* > nmapscan.txt

我还有一些其他命令来清理并将所有所需的输出保存到一个文件中,livehosts.txt

cat ./temp/nmapscan.txt | grep -o -E '([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}' > ./temp/macaddresses.txt

其中保存了 mac 地址。和:

grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' ./temp/nmapscan.txt > ./temp/ipaddresses.txt

其中保存了 IP 地址。和:

cat ./temp/nmapscan.txt | grep -o -P '(?<=for).*(?=.attlocal)' > ./temp/hostnames1.txt

这保存了主机名。和:

cut -d' ' -f 2 ./temp/hostnames1.txt > ./temp/hostnames2.txt

我这样做是为了清理主机名(抱歉,忘记将其包含在原始帖子中)......并且:

cut -d' ' -f 1 ./temp/hostnames2.txt | paste ./temp/macaddresses.txt ./temp/ipaddresses.txt - > ./temp/livehosts.txt

..这是结合了所需数据并显示如下的最终产品:

xx:xx:xx:xx:xx:xx   192.168.1.1     Netgear
xx:xx:xx:xx:xx:xx   192.168.1.111   John's Toilet Cam

我想再次扫描并写入,并且想要livehosts.txt文件或多或少会更新。只需按原样进行扫描并再次写入即可覆盖文件。并且并非所有设备都在不同时间连接。

我试过了:

>>

但这只会使文件中已有的数据加倍。

将数据加倍、删除重复数据,然后写入新文件是最好的方法吗?

你会怎样做呢?谢谢!

答案1

有太多不必要的操作。

首先,使用-oG选项(grepable 格式)。这将使您的工作更加轻松。来源:Nmap 参考指南 - 输出。并且不需要进行文件重定向(> nmapscan.txt),因为 nmap 已经有一个-oN选项。您可以记录到文件,但仍然可以将输出输出到控制台。

我不确定你的目标规范是否合法:

nmap -sP 192.168.1*

也许nmap设法正确解释它,据我所知,它不是有效的语法。

相反,请使用192.168.1.0/24192.168.1.1-255(假设您要扫描地址为 192.168.1.0 到 192.168.1.255 的小型网络。

看:Nmap 参考指南 - 目标规范

相关内容