Boucle pour modifier des caractères précis d'un fichier texte

Fermé
raphoune89 Messages postés 3 Date d'inscription jeudi 28 mars 2013 Statut Membre Dernière intervention 29 mars 2013 - 28 mars 2013 à 17:13
dubcek Messages postés 18589 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 21 mars 2023 - 29 mars 2013 à 10:41
Bonjour,
J'utilise un programme externe qui lit un fichier texte pour exécuter des commandes sur un switch.
J'aimerais modifier certaines valeurs du fichier texte pour interroger plusieurs switchs.
Le corps du fichier texte est le suivant:
10.7.254.1 23
WAIT "Password:"
SEND "password\m"
WAIT ">"
SEND "enable\m"
WAIT "Password:"
SEND "password\m"
WAIT "#"
SEND "copy system:running-config tftp://10.7.253.196/nev1.txt\m"
WAIT "?"
SEND "\m"
WAIT "?"
SEND "\m"
WAIT "#"
SEND "exit"

Il faut que je modifie le dernier octet de l'adresse IP de la première ligne, et le nom du fichier .txt après la commande copy system:running-config...

J'arrive presque à extraire les bons caractères grâce à la boucle For /F mais je ne vois pas du tout comment faire pour modifier directement le fichier.

Merci d'avance pour vos réponses !

Cordialement,

5 réponses

Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 1 329
28 mars 2013 à 17:31
avec une bonne boucle for et sed:
for (( i=0;i<255;++i ))
do : sed " 1c 10.7.254.$i 23; s/nev1.txt/nev$i.txt" tontextedebase.txt >teste d'arrive
done
0
raphoune89 Messages postés 3 Date d'inscription jeudi 28 mars 2013 Statut Membre Dernière intervention 29 mars 2013
28 mars 2013 à 21:42
Salut Char Snipeur,
Merci pour ta réponse, mais c'est en quel langage ce petit code que tu m'as donné ?
J'aurais aimé faire ça en bat si possible vu que le programme externe se lance grâce à un bat, ça m'aurait permis de tout faire en un seul code vois-tu ? ^^
0
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 1 329
29 mars 2013 à 08:11
c'est du bash + sed. Comme tu n'as rien préciser, j'ai fais dans le truc le plus simple et le plus courant.
sous win, Msys te permet d'utiliser ces outils.
0
raphoune89 Messages postés 3 Date d'inscription jeudi 28 mars 2013 Statut Membre Dernière intervention 29 mars 2013
29 mars 2013 à 09:03
Ha ouais d'accord, je ne vais pas utiliser ça alors.
Tu ne saurais pas faire en bat ?
Merci !
0
Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 1 329
29 mars 2013 à 09:13
non. Je ne suis même pas sur que tu ais les outils nécessaire pour manipuler les fichiers.
Tu y arrivera peut être, mais ça va te prendre beaucoup de temps. Je te conseil vraiment d'installer un vrai langage de script. Msys, perl ou python
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18589 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 21 mars 2023 5 584
29 mars 2013 à 10:41
hello
on ne peut pas modifier directement le fichier.
rediriger la boucle FOR dans un fichier : > fichier.tmp et remplacer l'original : copy /Y fichier.tmp fichier.txt
0