fork download
  1. #!/bin/bash
  2. 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`;
  3. ADRESSE_IP=1.2.3.4
  4. MASQUE_IP=255.255.0.0
  5. PASSERELLE_IP=9.10.11.12
  6. IP_DYN=false
  7. LABEL_DHCP="DHCP"
  8. VAR_TEMP=`echo $ADRESSE_IP | grep -i '$LABEL_DHCP'`;
  9. if [ -n "$VAR_TEMP" ]
  10. then
  11. IP_DYN=true
  12. MASQUE_IP=""
  13. PASSERELLE_IP=""
  14. fi
  15. NOM_RESEAU=NET_IN
  16. LABEL_NOM=Name\=
  17. LABEL_ADRESSE=Address
  18. LABEL_MASQUE=Mask
  19. LABEL_PASSERELLE=Gateway
  20. LABEL_BLOC=ethernet
  21.  
  22. LIGNE_NOM_RESEAU=`grep -i -n ^$LABEL_NOM$NOM_RESEAU $FICHIER_IP`;
  23. NUM_LIGNE_RESEAU=`echo $LIGNE_NOM_RESEAU | cut -d':' -f1`
  24. LIGNE_ENTETES=`grep -i -n $LABEL_BLOC $FICHIER_IP`;
  25. NUMERO_LIGNE=`echo $LIGNE_ENTETES | cut -d ' ' -f1 | cut -d':' -f1`
  26. i=2
  27. DEBUT_BLOC="0"
  28. FIN_FICHIER=`wc -l $FICHIER_IP | cut -d ' ' -f1`;
  29. FIN_BLOC=$FIN_FICHIER
  30.  
  31. while [ -n "$NUMERO_LIGNE" ]&& [ "$i" -lt "$FIN_FICHIER" ]
  32. do
  33. if [ -n "$LIGNE_ENTETES" ]
  34. then
  35. NUMERO_LIGNE=`echo $LIGNE_ENTETES | cut -d ' ' -f$i | cut -d':' -f1`
  36. if [ -n "$NUMERO_LIGNE" ]
  37. then
  38. if [ "$NUMERO_LIGNE" -lt "$NUM_LIGNE_RESEAU" ] && [ "$NUMERO_LIGNE" -gt "$DEBUT_BLOC" ]
  39. then
  40. DEBUT_BLOC=$NUMERO_LIGNE
  41. fi
  42. if [ "$NUMERO_LIGNE" -gt "$NUM_LIGNE_RESEAU" ] && [ "$NUMERO_LIGNE" -lt "$FIN_BLOC" ]
  43. then
  44. FIN_BLOC=$NUMERO_LIGNE
  45. fi
  46. fi
  47. fi
  48. i=$(( $i + 1))
  49. done
  50.  
  51. echo fin 1
  52. LABEL_DHCP_T=DHCPLeaseTime
  53. LABEL_DNS=RequesteDNS
  54. #remplacement des lignes dans le fichier en fonction du cas
  55. if [ "$IP_DYN" == false ]
  56. then
  57. echo "ce n'est pas une adresse dyn"
  58. sed -i "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_MASQUE.*$//" $FICHIER_IP
  59. sed -i "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_PASSERELLE.*$//" $FICHIER_IP
  60. 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
  61. sed -i "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_DHCP_T.*$//" $FICHIER_IP
  62. sed -i "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_DNS=.*$//" $FICHIER_IP
  63. else
  64. echo "c'est une adresse dyn"
  65. sed -i -n "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_DNS.*$//" $FICHIER_IP
  66. sed -i -n "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_DHCP.*$//" $FICHIER_IP
  67. 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
  68. sed -i -n "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_MASK.*$//" $FICHIER_IP
  69. sed -i -n "$DEBUT_BLOC,$FIN_BLOC s/^$LABEL_PASSERELLE.*$//" $FICHIER_IP
  70.  
  71. fi
  72. echo $FICHIER_IP
  73.  
Success #stdin #stdout 0.03s 5312KB
stdin
Standard input is empty
stdout
fin 1
ce n'est pas une adresse dyn
[ethernet1]\nState=1\nName=Internet\nProtected=1\nMedia=0\nType=2\nGateway=\nAddress=125.246.235.245\nMask=255.0.0.0\nAddressComment=\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=