Fichier de commandes pour éditeur vi

Résolu/Fermé
solex81 Messages postés 3 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 28 juin 2007 - 28 juin 2007 à 09:18
solex81 Messages postés 3 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 28 juin 2007 - 28 juin 2007 à 14:53
je voudrais exécuter l'éditeur vi sur un ensemble de fichiers en faisant exécuter des commandes contenues dans un fichier (dans le cas présent substitutions de chaines de caractères). cela m'éviterait le caractère fastidieux de ces modifs.
quelqu'un connait-il la solution ?
merci.
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
28 juin 2007 à 09:34
Salut,

Et pourquoi pas un script (ou une ligne de commande) avec "sed" ?
Que veux-tu faire exactement ?
0
solex81 Messages postés 3 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 28 juin 2007
28 juin 2007 à 10:29
Bonjour Jipicy

voilà mon problème:

j'ai une grosse centaine de programmes en SQL dans lesquels j'ai des chaines de caractères à modifier,
du genre truc05 en truc06, bidulea en biduleb
et ceci n'importe où dans mes programmes
j'utilise (par exemple) la commande :1,$s/truc05/truc06/
puis la commande :1,$s/bidulea/biduleb/
je voulais mettre ces deux commandes dans un fichier 'toto'
et faire ensuite vi *.sql et faire exécuter le contenu de toto de manière automatique

je ne connais pas sed ; serait-ce une solution ?

merci à toi
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
28 juin 2007 à 11:24
Re-

Bon tu devrais trouver dans cette doc matières à exécuter ton projet.

Quant à "sed", avant d'aller plus loin, il faudrait savoir quelle version est installée sur ton serveur "unix" ? (sed -v ou sed --version)

Sinon voici un aperçu de ce qu'on peut faire avec :
[jp@MDK tmpfs]$ ls

fich1.txt  fich2.txt  fich3.txt  fich4.txt

[jp@MDK tmpfs]$ cat fich*

Bonjour A
Bonjour B
Bonjour C

Bonjour A
Bonjour B
Bonjour C

Bonjour A
Bonjour B
Bonjour C

Bonjour A
Bonjour B
Bonjour C

[jp@MDK tmpfs]$ sed 's/Bonjour C/Au revoir C/' fich*

Bonjour A
Bonjour B
Au revoir C

Bonjour A
Bonjour B
Au revoir C

Bonjour A
Bonjour B
Au revoir C

Bonjour A
Bonjour B
Au revoir C

[jp@MDK tmpfs]$
;-))
0
solex81 Messages postés 3 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 28 juin 2007
28 juin 2007 à 14:53
Re re

Merci beaucoup, j'ai pu me débrouiller avec l'éditeur "sed"
en créant un fichier de commandes TOTO qui contenait ceci:

s/bonjour A/au revoir A/g
s/bonjour B/au revoir B/g
s/bonjour C/au revoir C/g

et en faisant un script en UNIX nommé TITI
avec 2 lignes pour chaque fichier à modifier:

sed -f TOTO fich1.txt> tatave.tmp
mv tatave.tmp fich1.txt

c'est un peu long pour faire le fichier TITI mais la prochaine fois ce sera beaucoup plus facile...

merci encore et prends soin de toi
0