Awk et VI

pcsystemd Messages postés 734 Statut Membre -  
pcsystemd Messages postés 734 Statut Membre -
Bonjour,

tous les tutos que j'ai vu sous AWK dirife la sortie vers un fichier 'si j'ai bien compris) mais comment faire quand on veux traité un fichier ouvert dans VI directement. Je m'explique.

mon fichier ouvert avec VI contient

512-546
985-598
254-459
458-365
je souhaite ajouter toto en debut de ligne
Avec sed je saisi :

:1,$s/^/toto

et voila le resultat

toto512-546
toto985-598
toto254-459
toto458-365

mais comment faire avec Awk quand on veux traité un fichier ouvert dans VI et par exemple :

: awk -F gsub {[^0-9]* [0-9]+} c'est juste un exemple qui est peut être faux dans sa synthase d'ailleurs)

Comment faire pour récupérer le résultat directement dans le fichier ouvert avec VI?

je ne sais pas si j'ai été très clair donc je reste a votre dispo pour plus d'infos

MErci


2 réponses

jee pee Messages postés 42371 Statut Modérateur 9 737
 
bonjour,

quand tu es sous vi tu executes des commandes vi, sed et vi partagent les memes commandes , c'est peut être pour cela qu'il te semble que tu executes une commande sed, mais dans ton premier exemple tu n'as pas indiqué sed en début !

on ne peut pas executer une commande awk dans vi sur le contenu du fichier ouvert (j'accepte les avis contraires des experts ;-) c'est une commande du shell

cdt
0
pcsystemd Messages postés 734 Statut Membre 23
 
ah ok !!! Merci pour l'info
0
pcsystemd Messages postés 734 Statut Membre 23 > pcsystemd Messages postés 734 Statut Membre
 
J'ai mal formulé ma demande .

Dans le script sed suivant :

sed -r '
/\(.*\)/ s/([^0-9]*)([0-9]+)(.*\([^0-9]*)([0-9]+)(.*)\)/\1\2\3\4\5|\2|\4|)/
'  toto


on utilise \1\2\3\4\5|\2|\4| pour faire la substitution de ([^0-9]*)([0-9]+)(.*\([^0-9]*)([0-9]+)(.*)\)
Comment fait on avec AWK?

Merci
0
jee pee Messages postés 42371 Statut Modérateur 9 737 > pcsystemd Messages postés 734 Statut Membre
 
c'est une question qui n'a rien à voir ! tu aurais dû ouvrir une nouvelle discussion car je suis vite rétif à cette syntaxe (quand ce n'est pas moi qui l'écrit je ne sais pas décoder)
0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
hello
pour exécuter avec vi une commande externe et qui utilise en entrée et en sortie les données dans vi:
!Gcommande
le curseur est positionné sur la première ligne, G indique jusqu'à la fin du fichier
0
pcsystemd Messages postés 734 Statut Membre 23
 
Merci pour l'info
0