language: Bash (bash 4.0.35)
date: 104 days 17 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/bin/bash
FICHIER_IP=[ethernet1]\nState=1\nName=Internet\nProtected=1\nMedia=0\nType=2\nGateway=\nAddress=125.246.235.245\nMask=255.0.0.0\nAddressComment=\n\n[ethernet2]\nState=2\nName=Intra\nProtected=1\nMedia=0\nType=2\nColor=1564521\n\n[ethernet3]\nState=1\nName=NET_IN\nProtected=1\nMedia=0\nType=1\nColor=FF0000\nGateway=124.128.200.100\nAddress=125.246.230.240\nMask=255.255.255.0\nAddressComment=\n\nIP_DYN=false\nLABEL_DHCP="DHCP"\nNOM_RESEAU=NET_IN\nLABEL_NOM=Name\=\n\nLABEL_ADRESSE=Address\nLABEL_MASQUE=Mask\nLABEL_PASSERELLE=Gateway\nLABEL_BLOC=ethernet\nLIGNE_NOM_RESEAU=`grep -i -n ^$LABEL_NOM$NOM_RESEAU`\nLIGNE_ENTETES=`grep -i -n $LABEL_BLOC $FICHIER_IP`;
ADRESSE_IP=1.2.3.4
MASQUE_IP=255.255.0.0
PASSERELLE_IP=9.10.11.12
IP_DYN=false
LABEL_DHCP="DHCP"
VAR_TEMP=`echo $ADRESSE_IP | grep -i '$LABEL_DHCP'`;
if [ -n "$VAR_TEMP" ]
then
    IP_DYN=true   
    MASQUE_IP=""
    PASSERELLE_IP=""
fi
NOM_RESEAU=NET_IN
LABEL_NOM=Name\=
LABEL_ADRESSE=Address
LABEL_MASQUE=Mask
LABEL_PASSERELLE=Gateway
LABEL_BLOC=ethernet
 
LIGNE_NOM_RESEAU=`grep -i -n ^$LABEL_NOM$NOM_RESEAU $FICHIER_IP`;
NUM_LIGNE_RESEAU=`echo $LIGNE_NOM_RESEAU | cut -d':' -f1`
LIGNE_ENTETES=`grep -i -n $LABEL_BLOC $FICHIER_IP`;
NUMERO_LIGNE=`echo $LIGNE_ENTETES | cut -d ' ' -f1 | cut -d':' -f1`
i=2
DEBUT_BLOC="0"
FIN_FICHIER=`wc -l $FICHIER_IP | cut -d ' ' -f1`;
FIN_BLOC=$FIN_FICHIER
 
while [ -n "$NUMERO_LIGNE" ]&& [ "$i" -lt "$FIN_FICHIER" ]
do
        if [ -n "$LIGNE_ENTETES" ]
        then
            NUMERO_LIGNE=`echo $LIGNE_ENTETES | cut -d ' ' -f$i | cut -d':' -f1`                
            if [ -n "$NUMERO_LIGNE" ]
            then        
                if [ "$NUMERO_LIGNE" -lt "$NUM_LIGNE_RESEAU" ] && [ "$NUMERO_LIGNE" -gt "$DEBUT_BLOC" ] 
                then                    
                        DEBUT_BLOC=$NUMERO_LIGNE                        
                fi
                if [ "$NUMERO_LIGNE" -gt "$NUM_LIGNE_RESEAU" ] && [ "$NUMERO_LIGNE" -lt "$FIN_BLOC" ]
                then
                        FIN_BLOC=$NUMERO_LIGNE
                fi
            fi
        fi
        i=$(( $i + 1))
done
 
echo fin 1
LABEL_DHCP_T=DHCPLeaseTime
LABEL_DNS=RequesteDNS
#remplacement des lignes dans le fichier en fonction du cas
if [ "$IP_DYN" == false ]
then
echo "ce n'est pas une adresse dyn"
   sed -i "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_MASQUE.*$//" $FICHIER_IP
   sed -i "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_PASSERELLE.*$//" $FICHIER_IP 
   sed -i "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_ADRESSE=.*$/$LABEL_PASSERELLE\=$PASSERELLE_IP\n$LABEL_ADRESSE\=$ADRESSE_IP\n$LABEL_MASQUE\=$MASQUE_IP/" $FICHIER_IP
   sed -i "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_DHCP_T.*$//" $FICHIER_IP
   sed -i "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_DNS=.*$//" $FICHIER_IP
else
    echo "c'est une adresse dyn"
    sed -i -n "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_DNS.*$//" $FICHIER_IP
    sed -i -n "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_DHCP.*$//" $FICHIER_IP
    sed -i -n "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_ADRESSE=.*$/$LABEL_DHCP_T\=3600\n$LABEL_DNS\=0\n$LABEL_ADRESSE\=$LABEL_DHCP/" $FICHIER_IP
    sed -i -n "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_MASK.*$//" $FICHIER_IP
    sed -i -n "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_PASSERELLE.*$//" $FICHIER_IP
 
fi
echo $FICHIER_IP
  • upload with new input
  • result: Success     time: 0.04s    memory: 5312 kB     returned value: 0

    fin 1
    ce n'est pas une adresse dyn
    [ethernet1]nState=1nName=InternetnProtected=1nMedia=0nType=2nGateway=nAddress=125.246.235.245nMask=255.0.0.0nAddressComment=nn[ethernet2]nState=2nName=IntranProtected=1nMedia=0nType=2nColor=1564521nn[ethernet3]nState=1nName=NET_INnProtected=1nMedia=0nType=1nColor=FF0000nGateway=124.128.200.100nAddress=125.246.230.240nMask=255.255.255.0nAddressComment=nnIP_DYN=falsenLABEL_DHCP=DHCPnNOM_RESEAU=NET_INnLABEL_NOM=Name=nnLABEL_ADRESSE=AddressnLABEL_MASQUE=MasknLABEL_PASSERELLE=GatewaynLABEL_BLOC=ethernetnLIGNE_NOM_RESEAU=nLIGNE_ENTETES=
    
    Usage: grep [OPTION]... PATTERN [FILE]...
    Try `grep --help' for more information.
    grep: [ethernet1]nState=1nName=InternetnProtected=1nMedia=0nType=2nGateway=nAddress=125.246.235.245nMask=255.0.0.0nAddressComment=nn[ethernet2]nState=2nName=IntranProtected=1nMedia=0nType=2nColor=1564521nn[ethernet3]nState=1nName=NET_INnProtected=1nMedia=0nType=1nColor=FF0000nGateway=124.128.200.100nAddress=125.246.230.240nMask=255.255.255.0nAddressComment=nnIP_DYN=falsenLABEL_DHCP=DHCPnNOM_RESEAU=NET_INnLABEL_NOM=Name=nnLABEL_ADRESSE=AddressnLABEL_MASQUE=MasknLABEL_PASSERELLE=GatewaynLABEL_BLOC=ethernetnLIGNE_NOM_RESEAU=nLIGNE_ENTETES=: File name too long
    grep: [ethernet1]nState=1nName=InternetnProtected=1nMedia=0nType=2nGateway=nAddress=125.246.235.245nMask=255.0.0.0nAddressComment=nn[ethernet2]nState=2nName=IntranProtected=1nMedia=0nType=2nColor=1564521nn[ethernet3]nState=1nName=NET_INnProtected=1nMedia=0nType=1nColor=FF0000nGateway=124.128.200.100nAddress=125.246.230.240nMask=255.255.255.0nAddressComment=nnIP_DYN=falsenLABEL_DHCP=DHCPnNOM_RESEAU=NET_INnLABEL_NOM=Name=nnLABEL_ADRESSE=AddressnLABEL_MASQUE=MasknLABEL_PASSERELLE=GatewaynLABEL_BLOC=ethernetnLIGNE_NOM_RESEAU=nLIGNE_ENTETES=: File name too long
    wc: [ethernet1]nState=1nName=InternetnProtected=1nMedia=0nType=2nGateway=nAddress=125.246.235.245nMask=255.0.0.0nAddressComment=nn[ethernet2]nState=2nName=IntranProtected=1nMedia=0nType=2nColor=1564521nn[ethernet3]nState=1nName=NET_INnProtected=1nMedia=0nType=1nColor=FF0000nGateway=124.128.200.100nAddress=125.246.230.240nMask=255.255.255.0nAddressComment=nnIP_DYN=falsenLABEL_DHCP=DHCPnNOM_RESEAU=NET_INnLABEL_NOM=Name=nnLABEL_ADRESSE=AddressnLABEL_MASQUE=MasknLABEL_PASSERELLE=GatewaynLABEL_BLOC=ethernetnLIGNE_NOM_RESEAU=nLIGNE_ENTETES=: File name too long
    sed: -e expression #1, char 4: unexpected `,'
    sed: -e expression #1, char 4: unexpected `,'
    sed: -e expression #1, char 4: unexpected `,'
    sed: -e expression #1, char 4: unexpected `,'
    sed: -e expression #1, char 4: unexpected `,'