我被赋予了从带有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