
这是列表的各种添加方式,拷贝自他人博客。详细用法参考https://blog.youkuaiyun.com/asty9000/article/details/87103111
删除列表元素用法:
unset array_name[index]
其中,array_name 表示数组名,index 表示数组下标。如果不写下标,写成下面这样就是删除整个数组:
unset array_name
下图是我本人借助这两个用法写得的一个具体的脚本,通过以下这些ip段,把所有ip输出到一个列表中:

#!/bin/bash
declare -a iplist
line_count=`cat lt_ip.txt | wc -l`
for((a=1;a<=${line_count};a++));do
start_ip=`sed -n "${a}p" lt_ip.txt | awk '{print $1}'`
end_ip=`sed -n "${a}p" lt_ip.txt | awk '{print $1}'`
#截取ip段,比如是1.1.1.1这个ip,这里就是1.1.1
ip_duan=${start_ip%.*}
#echo "$ip_duan"
#计算ip段的个数,比如1.1.1.1-1.1.1.7,这就是7-1
let ip_cha=${end_ip##*.}-${start_ip##*.}
#如果ip_cha=0,就是表示这个段就只有一个ip
if [ "$ip_cha" -eq 0 ];then
#echo "$start_ip"
iplist+=($start_ip)
companylist+=($company)
##如果ip_cha不等于0,就计算这个范围有多少个ip
else
let end_postion=${start_ip##*.}-1
let number=${ip_cha}+1
#echo "$end_postion"
for ((b=1;b<=${number};b++));do
let end_postion+=1
ip=`echo ${ip_duan}.${end_postion}`
#echo "$ip"
iplist+=($ip)
companylist+=($company)
done
fi
done
#echo "${iplist[@]}"
#以下这部分就是通过找出的所有ip列表,针对这些ip去找这些xml文件里面域名以及顶级域名,可不理会
for i in ${iplist[@]};do
declare -a topdomainlist
declare -a domainlist
for j in `ls *.xml`;do
topdomain=`cat $j | grep -B 1 "$i" | grep "<topDomain>" | awk -F '>' '{print $2}' | awk -F '<' '{print $1}'`
domain=`cat $j | grep -B 7 "$i" | grep "<findDomainListDomain>" | awk -F '>' '{print $2}' | awk -F '<' '{print $1}'`
topdomainlist+=($topdomain)
domainlist+=($domain)
done
echo "$i | ${topdomainlist[@]} | ${domainlist[@]}" >> lt_ip_domain.txt
unset topdomainlist
unset domainlist
#echo " ${domainlist[@]}"
done
本文介绍了一种使用Bash脚本进行列表操作的方法,包括列表元素的添加与删除,以及如何通过脚本解析IP地址段,生成一系列IP地址,并将它们存储在列表中。此外,还展示了如何遍历IP列表,从XML文件中提取与特定IP关联的域名及顶级域名。
927

被折叠的 条评论
为什么被折叠?



