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

--
L'accés au savoir est la premiére liberté de l'homme.
Configuration: Linux Debian
Mozilla 1.8.1.13

2 réponses

  1. jee pee Messages postés 31889 Date d'inscription   Statut Modérateur Dernière intervention   9 982
     
    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
    1. pcsystemd Messages postés 734 Statut Membre 23
       
      ah ok !!! Merci pour l'info
      0
      1. 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
      2. jee pee Messages postés 31889 Date d'inscription   Statut Modérateur Dernière intervention   9 982 > 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
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
    1. pcsystemd Messages postés 734 Statut Membre 23
       
      Merci pour l'info
      0