这是列表的各种添加方式,拷贝自他人博客。详细用法参考https://blog.csdn.net/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