• [^] # Re: awk

    Posté par . En réponse au message remplacement dans fichier. Évalué à 1.

    Si le problème est que ton script marche pour toutes les avant-dernières lignes, sed seul ne pourra pas le faire: c'est un éditeur de ligne, pas de fichier, il est incapable de dire si une ligne est l'avant-dernière ou la première, contrairement à awk.

    S'il n'avait pas dit je souhaite modifier le contenu de la 5e colonne correspondant à la clef 'avantdernier' (la clef étant la 2e colonne) mais, je souhaite modifier le contenu de la 5e colonne de l'avant dernière ligne, alors le code correspondant aurait été :

    [kangs<<azopt23a>>:0s:tmp]$ cat data.txt
    A test * * ici
    AA test2 * * la
    A uneautreclef * * la
    B avantdernier * * ici
    C dernier * * la
    [kangs<<azopt23a>>:0s:tmp]$ sed 'x; ${s/\(.*\t.*\t.*\t.*\t\).*/1円salut/;p;x}; 1d' data.txt
    A test * * ici
    AA test2 * * la
    A uneautreclef * * la
    B avantdernier * * salut
    C dernier * * la