Utiliser un argument dans une commande sed

Résolu
Bonjour,

Je souhaite utiliser un argument dans une commande sed et, après avoir essayé plusieurs solutions, bein ça ne marche pas. Aussi, si quelqu'un a une idée pour m'aider, ça serait sympa !

Voilà la commande sed que j'ai tapé, sachant que l'argument $2 correspond à un chiffre passé en paramètre du script :

sed -i.bak "s/intermediate-1/inter1\-\$2/g" {} \;

Le résultat est le suivant : DBT/inter1-$2-836A90/1/1

Merci d'avance pour votre aide !

2 réponses

  1. Contributeur
    Salut,

    A quoi correspond l'expression "inter1\-\$2" ?

    Les anti-slashs doivent-ils se retrouver dans le résultat final ou sont-ils là pour protéger les caractères qu'ils précèdent ?

    En gros à quoi ressemble l'expression à remplacer et à quoi doit-elle ressembler au final ?
    0
    1. ligne de départ : DBT/intermediate-1-836A90/1/1
      ligne résultat : DBT/inter1-$2-836A90/1/1
      0
    2. Contributeur
      ligne résultat : DBT/inter1-$2-836A90/1/1
      Je suppose que le "$2" doit être évalué avant ?

      sed -i.bak "s/intermediate-1/inter1-$2/g" {}
      0
    3. Yes, ça marche !!!!!! Un grand merci pour ton aide !
      0
  2. Bonjour,

    En général, quand je commence à devoir utiliser des variables dans des regexp, j'arrête le shell et je passe à Perl (appel d'un oneliner ou codage complet du script, selon les cas). Question de préservation de ma santé mentale :)
    0