美文网首页
段落转换(给正文行首加上段落首行)shell

段落转换(给正文行首加上段落首行)shell

作者: 六十三63 | 来源:发表于2019-03-19 00:56 被阅读0次

    每一次文本处理的背后都是无聊的灵魂

    标准不统一的问题给人造成的困扰很大

    比如网络给你的是他交换机的信息,你要看的却是你物理服务器的信息。

    交换机信息的信息如下

    aaa_leaf_1_H777     
    port        device
    10GB/0/1        host1
    10GB/0/2        host2
    10GB/0/3        host3
    10GB/0/4        ERROR
    10GB/0/5        host5
    10GB/0/6        host6
    10GB/0/7        host7
    10GB/0/8        ERROR
    10GB/0/9        ERROR
    10GB/0/10       host10
    10GB/0/11       host11
    10GB/0/12       ERROR
    10GB/0/13       host13
    10GB/0/14       host14
            
    abb_leaf_1_H777     
    port        device
    10GB/0/1        host18
    10GB/0/2        host19
    10GB/0/3        host20
    10GB/0/4        host21
    10GB/0/5        host22
    10GB/0/6        host23
    10GB/0/7        host24
    10GB/0/8        host25
    10GB/0/9        host26
    10GB/0/10       host27
    10GB/0/11       host28
    10GB/0/12       host29
    10GB/0/13       host30
    10GB/0/14       host31
            
    ccc_leaf_1_H777     
    port        device
    10GB/0/1        host18
    10GB/0/2        host19
    10GB/0/3        host20
    10GB/0/4        host21
    10GB/0/5        ERROR
    10GB/0/6        ERROR
    10GB/0/7        ERROR
    10GB/0/8        host25
    10GB/0/9        host26
    10GB/0/10       host27
    10GB/0/11       host28
    10GB/0/12       ERROR
    10GB/0/13       host30
    10GB/0/14       host31
    
    

    但是我主机端的表是这样

    host1   aaa_leaf_1#1    ccc_leaf_1#1
    host2   aaa_leaf_1#2    ccc_leaf_1#2
    host3   aaa_leaf_1#3    ccc_leaf_1#3
    host4   aaa_leaf_1#4    ccc_leaf_1#4
    host5   aaa_leaf_1#5    ccc_leaf_1#5
    host6   aaa_leaf_1#6    ccc_leaf_1#6
    host7   aaa_leaf_1#7    ccc_leaf_1#7
    host8   aaa_leaf_1#8    ccc_leaf_1#8
    host9   aaa_leaf_1#9    ccc_leaf_1#9
    host10  aaa_leaf_1#10   ccc_leaf_1#10
    host11  aaa_leaf_1#11   ccc_leaf_1#11
    host12  aaa_leaf_1#12   ccc_leaf_1#12
    host13  aaa_leaf_1#13   ccc_leaf_1#13
    host14  aaa_leaf_1#14   ccc_leaf_1#14
    host15  aaa_leaf_1#15   ccc_leaf_1#15
    host16  aaa_leaf_1#16   ccc_leaf_1#16
    host17  aaa_leaf_1#17   ccc_leaf_1#17
    host18  aaa_leaf_1#18   ccc_leaf_1#18
    
    

    这让我怎么让快熟找出我哪些主机设置的LLDP有问题呢,只能先处理交换机端出现的信息

    以下是研究出来的函数,当然后期还要加工以下,但已经能把每个段落中端口信息加上段落的首行,也就是交换机信息

    switch_ch () {
    OLDFILE=$1
    cat $OLDFILE|sed '/^\t/d'|grep -v ^port>newfile
    TARGERFILE=newfile
    SWITCHLINELIST=(`cat -n $TARGERFILE|grep 'leaf'|awk '{print $1}'`)
    SWITCHNAMELIT=(`cat -n $TARGERFILE|grep 'leaf'|awk '{print $2}'`)
    i=0
    FILEENDLINE=`cat $TARGERFILE|wc -l`
    ENDINDEX=`expr ${#SWITCHLINELIST[@]} - 1`
    while [ $i -le $ENDINDEX ]
    do
    STARLINE=`expr ${SWITCHLINELIST[$i]} + 1`
    LEAFNAME=`echo ${SWITCHNAMELIT[$i]}|awk -F'_' '{print $1"_"$2"_"$3}'`
    if [ $i -eq $ENDINDEX ];then
    sed -i "${STARLINE},${FILEENDLINE}s/^/${LEAFNAME}/g" $TARGERFILE
    else
    NEXTLEAFLINEINDEX=`expr $i + 1`
    NEXTLEAFLINE=`expr ${SWITCHLINELIST[$NEXTLEAFLINEINDEX]} - 1`
    sed -i "${STARLINE},${NEXTLEAFLINE}s/^/${LEAFNAME}/g" $TARGERFILE
    fi
    i=`expr $i + 1`
    done
    }
    switch_ch
    

    相关文章

      网友评论

          本文标题:段落转换(给正文行首加上段落首行)shell

          本文链接:https://www.haomeiwen.com/subject/ppcwmqtx.html