Remplacer une ligne avec une variable incrémentale
madavekia
Messages postés
34
Statut
Membre
-
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je voudrais remplacer avec SED une ligne dans une fichier texte et qui est la suivante :
Release: 0%{?dist}
par :
Release: R$x%{?dist}
sachant qu'a chaque fois que je lance mon script la valeur de x est incrémentée de +1 , donc j'aurais comme sortie :
Release: R1{?dist}
Je vous remercie d'avance
Je voudrais remplacer avec SED une ligne dans une fichier texte et qui est la suivante :
Release: 0%{?dist}
par :
Release: R$x%{?dist}
sachant qu'a chaque fois que je lance mon script la valeur de x est incrémentée de +1 , donc j'aurais comme sortie :
Release: R1{?dist}
Je vous remercie d'avance
2 réponses
-
Salut,
$ cat plop Bonjour, Je voudrais remplacer avec SED une ligne dans une fichier texte et qui est la suivante : Release: 0%{?dist} $ x=1 $ sed '/^\(Release: \)[^%]*\(.*\)/{s//\1R'"${x}"'\2/}' plop Bonjour, Je voudrais remplacer avec SED une ligne dans une fichier texte et qui est la suivante : Release: R1%{?dist} $ x=2 $ sed '/^\(Release: \)[^%]*\(.*\)/{s//\1R'"${x}"'\2/}' plop Bonjour, Je voudrais remplacer avec SED une ligne dans une fichier texte et qui est la suivante : Release: R2%{?dist} $;-))
-
Tout d'abord merci pour ta réponse.
Tu incrémentes tout seul le x ou c'est le sed qui le fait ?
sed: -e expression n°1, caractère 39: caractères inutiles après la commande , c'est le message que j'ai en sortie-
Non sed ne fait pas d'incrémentation. Comme tu parlais de script (sachant qu'a chaque fois que je lance mon script la valeur de x est incrémentée de +1 , ) je croyais que la commande sed faisait partie d'une boucle d'où étaient extraite la variable ;-\
Pour l'erreur copies/colles ta commande, tu dois avoir oublié une quote ;-(
Pour te faciliter la vie, mets des quotes doubles autour de la synatxe de sed :
sed "/^\(Release: \)[^%]*\(.*\)/{s//\1R${x}\2/}"
-