一尘不染

如何在另一个文件中查找IP地址列表

linux

我得到的任务是查看是否要发布IP地址列表(3000)。手动执行此操作不是一个好主意,因此我将所有要发布的IP地址复制到了文件中。现在,我只需要创建一个bash脚本并将ip地址列表输入脚本中,这样它就可以在文件中找到要发布的ip地址列表中的ip地址。如果找到,则将其保存在一个文件中(如果不在其他文件中)。到目前为止,这就是我所拥有的。这个脚本的问题是我必须手动输入每个IP地址。我如何将要搜索的带有IP地址列表的文件送入带有广告的IP地址列表的文件中。非常感谢您。

 #!/bin/bash

while true; do
  echo -e "IP address: \c"
  read ip

  if grep --color "$ip" "ips"; then
    echo $ip "was found"
    echo $ip >> found
  else
    echo $ip "was NOT found"
    echo $ip >> notFound

  fi

done

阅读 225

收藏
2020-06-07

共1个答案

一尘不染

更好的脚本:

while read ip  
do  
    grep "$ip"  "$ips" > /dev/null 2>&1 && echo "$ip" >> ip.found || echo "$ip" >> ip.notfound  
done

将脚本命名为“ searchip.sh”
假设您的输入文件是“ iplist”,设置变量并按如下所示调用:

ips=ips
cat iplist | sh searchip.sh

要么

sh searchip.sh < iplist

然后,您将获得两个文件,一个文件是ip,另一个文件是ip。
您需要的是Shell I / O重定向。

2020-06-07