Remplacer Echap

liouae12 Messages postés 23 Statut Membre -  
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour,

Je travail sur un script linux , et je veux modifier dans un fichier .xml une fois je termine , je vais sauvegarder et quitter le fichier , alors comment remplacer Echap dans le script sachant que j ai deja trouver la solution pour sauvegarder et quitter ( :wq )

Merci

A voir également:

3 réponses

zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut,

Je ne comprends pas bien ce que tu veux ;-\

Peux-tu préciser un peu mieux ce que tu fais et voudrais faire et avec quels outils ?
0
liouae12 Messages postés 23 Statut Membre
 
Merci pour votre reponse ,

Ok , j'ai un fichier .xml chaque fois je modifie quelque donnée , et une fois je termine la modification , je tape Echap sur le clavier pour quitter le mode insert et je tape shift + zz pour enregistrer et quitter le fichier , Alors la je veux pas faire ça manuellement , je veux remplacer ça par un script , et le probléme c comment remplacer Echap qui est dans le clavier par une commande script , deja j ai trouver pour ( shift + zz ) c'est ( :wq )
Mais Echap , j'arrive pas , alors comment , et merci d 'avance .
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Avec quel éditeur fais-tu ça ? vi (vim) ?

Sinon il serait peut être bien de passer par "sed" ou "ed"...
0
liouae12 Messages postés 23 Statut Membre
 
vi comme editeur , alors dans la derniere ligne je veux echaper et enregistrer la modif ( voir l'exemple )

Voici l'exemple :

#!/usr/bin/expect -f
set force_conservative 1;
set serv [lindex $argv 0]
set envr [lindex $argv 1]
set timeout 3
spawn ssh liouae@${serv}
expect "password:r/"
send -- "liouae"
send -- "\r"
send -- "\r"
expect "\[liouae@enee ~]"
send -- "su - ${envr} :\r"
send -- "\r"
expect "Mot de passe :\r"
send -- "123456"
send -- "\r"
send -- "\r"
send -- "sh"
send -- "\r"
send -- "\r"
send -- "cd ../../TCS/conf/TCServer/"
send -- "\r"
send -- "\r"
send -- "env>environment.vars"
send -- "\r"
send -- "\r"
send -- "vi tcserver.xml"
send -- "\r"
send -- "\r"
expect "Press ENTER"
send -- "\r"
send -- "\r"
send -- "sed -i.bak 's/production/${envr}/g' tcserver.xml"
send -- "\r"
send -- "sed -i.bak 's/86/${port}/g' tcserver.xml"
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Je suppose qu'un :

send -- "\e" 
devrait le faire ;-))
0