• [^] # Re: avec sed

    Posté par . En réponse au message Modifier une seul ligne d'un tableau.... Évalué à 3.

    Bon mon probleme, c'est que certaine des mes variable contiendrons
    des slashs et des espaces...

    Va falloir que j'echappe tout ça...


    Absolument pas. Le premier caractère suivant la commande 's' indique le caractere de séparation des arguments de la dite commande.

    Ainsi, on pouvoit aussi ecrire :
    sed '3s;info2;plop;'

    Il faut donc trouver un caractère qui n'apparaitra jamais. Pour cela, le ';' est pas mal car on l'utilise quasiment jamais dans une valeur manipulée par shell du fait de sa nature de séparation.


    Par contre, ton code est bien compliqué.
    Si je résume, tu veux remplacer la second champ de la nieme ligne ?
    Auquel cas il vaut mieux tout faire avec awk :
    awk "NR==$ligne"'{2ドル=plop}' /etc/hosts
    Attention, noter le jeux entre double quote et simple quote ainsi que l'absence de blancs entre les deux chaines. Plus classiquement, en échappant cela done :
    awk "NR==$ligne"{\2ドル=$nouvelle}" /etc/hosts