将IP地址列表与另一个文件匹配的IP地址列表



我被赋予了从带有IP地址的另一个文件中检索一长串IP地址的任务。我创建了这个bash脚本,但是它运行不佳。执行脚本后,我检查了名为"找到"的文件,没有什么都没有,当我检查称为" notfound"的文件时,大约有60个IP地址。在这两个文件中,总共必须有1500个IP地址。有两个文件;1.要检索的IP地址列表(findtheseips.txt),2。从(Listips.txt)检索的IP地址列表。任何人都可以帮助我使它起作用。非常感谢。我以这种方式运行脚本: ./脚本Findtheseips.txt

 #!/bin/bash
 declare -a ARRAY
 exec 10<&0
 exec < $1
 let count=0
 while read LINE; do
 ARRAY[$count]=$LINE
 if egrep "$LINE" listips.txt; then
    echo "$LINE" >> found
   else
    echo "$LINE" >> notfound
 fi
done

无需尝试使用exec或创建一个数组。

您可以从脚本的第一个参数$1

read

除非您尝试进行扩展的正则表达式匹配,否则不需要使用egrep

#!/bin/bash
while read LINE; do
    if grep "$LINE" listips.txt; then
        echo "$LINE" >> found
    else
        echo "$LINE" >> notfound
    fi
done < $1

这是一个所有bash解决方案。

#!/bin/bash
while read l1; do
    n=0
    while read l2; do
        if [[ $l1 == $l2 ]]; then
            echo "$l1" >> found
            ((n++))
        fi
    done < ips2
    if [ $n -eq 0 ]; then
        echo "$l1" >> notfound
    fi
done < $1

相关内容

  • 没有找到相关文章

最新更新