中兴M6000-18S设备配置文件过滤,采集此类设备的vbui大段配置

此脚本尚未完成,存在问题如下:

1、文件内循环结束出现问题,导致出现异常输出。

2、IP地址提取部分尚未编写完成。

3、vbui行号取值出现重复,重复内容为不需要内容。


完成部分如下:

1、可以正常提取大段备注名

2、可以正常提取大段VPN号


脚本如下:

#!/bin/bash
#中兴M6000-18S设备配置文件过滤
#1 interface vbui1
#2  description XXX
#3  ip vrf forwarding XXX
#4  ip address X.X.38.1 255.255.255.0
#5 $
PWD=`cd "$( dirname "$0"  )" && pwd`
ZTLIST=(`cat $PWD/ztmselist`)
ZTLISTSUM=${#ZTLIST[@]}
COUNTER1=0

#自定义函数获取vbui号
shvbui(){
VBWC=`echo "$CONTENT" | grep "interface vbui" |wc -l`
if [ $VBWC -ne 0 ];then
	VBS=`echo "$CONTENT" | awk '{print $3}'`
	echo $VBS
fi
}

#自定义函数获取备注
shdp(){
DPWC=`echo "$CONTENT" | grep "description" |wc -l`
if [ $DPWC -ne 0 ];then
	DPS=`echo "$CONTENT" | awk '{print $3}'`
	echo $DPS
fi
}

#自定义函数获取VPN号
shvpn(){
VPNWC=`echo "$CONTENT" | grep "ip vrf forwarding" |wc -l`
if [ $VPNWC -ne 0 ];then
	VPNS=`echo "$CONTENT" | awk '{print $5}'`
	echo $VPNS
fi
}

#自定义函数调用IP掩码
ship(){
#IP能够存在多个,死循环自动生成变量,验证变量是否存在,变量总数大于2,在每行填充其他函数获取的值
IPWC=`echo "$CONTENT" | grep "ip address" |wc -l`
IPSUM=
#尚未完成编写
while true
do
	if [ $IPWC -ne 0 ];then
		IPS=`echo "$CONTENT" | awk '{print $5}'`
		echo $IPS
	fi
done
}

while true
do
	#获取vbui起始行号(此处获取出现问题)
	SED=(`cat -n ${ZTLIST[$COUNTER1]}|grep "^interface vbui"|awk '{print $1}'`)
	SEDSUM=${#SED[@]}
	COUNTER2=0
		while true
		do
			SED1=${SED[$COUNTER2]}
			#开始对每一个vbui进行处理
			while true
			do
				#获取实质内容
				#CONTENT=`cat -n ${ZTLIST[$COUNTER1]}|sed -n ${SED[$COUNTER2]}p `
				CONTENT=`cat -n ${ZTLIST[$COUNTER1]}|sed -n ${SED1}p `
				#自定义函数处理数据
				#测试输出效果,尚未进行汇总成表格,此处测试通过,因循环停止出现问题导致输出存在问题
				shvbui $CONTENT
				shdp $CONTENT
				shvpn $CONTENT
			
				IF1=`cat ${ZTLIST[$COUNTER1]}|sed -n ${SED1}p | sed 's/[ \t]*//g'`
			if [ "$IF1" == '$' ];then
				break
			fi
			SED1=$((SED1+1))
			#此处结束循环出现问题
			done 
			#整理数据,成csv格式
			#echo "XXX" >> XXX.csv
			
			if [ $COUNTER2 -eq $SEDSUM ];then
				break
			fi
			COUNTER2=$((COUNTER2+1))
		done

	if [ $COUNTER1 -eq $UPTIMESUM ];then
	#退出死循环
	break
	fi
	COUNTER1=$((COUNTER1+1))
done


发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。