Accéder au contenu.
Menu Sympa

linux-31 - Re: [Linux-31] tester sed

Objet : Discussions sur le logiciel libre

Archives de la liste

Re: [Linux-31] tester sed


Chronologique Discussions 
  • From: jpcas <jpcas AT free.fr>
  • To: linux-31 AT culte.org
  • Subject: Re: [Linux-31] tester sed
  • Date: Mon, 24 Sep 2018 17:37:24 +0200

Salut,

Le 24/09/2018 à 10:37, "jdd AT dodin.org" (via linux-31 Mailing List) a écrit :
> Bonjour,
>
> Je voudrais modifier un grand nombre de fichiers sur le site web du
> CULTe (archives mails) à ,la demande d'un ancien adhérent qui voudrait
> devenir anonyme.
>
> grep -lir toto .
>
> me donne la liste
>
> sed -i `s/toto/XXXX/g`
>
> devrait faire le remplacement (mais quel type de quotes, ' - 4 ou ` - 7)
>

Des quotes simples (apostrophe) à condition qu'il n'y ait pas de
variables à interpréter dans la syntaxe de ton expression.


> mais il est très pénible de faire une copie de sauvegarde des mails,
> sauvegardés un par un et donc des milliers de fichiers, mais je ne
> voudrais pas détruire nos archives bêtement :-(
>

En plus de l'option "-i" (in-place) on peut spécifier un suffixe
(-i.bak) qui fera une copie de chaque fichier modifié.

> donc
>
> 1) comment écrire la ligne complète?

sed -i.bak 's/toto/XXXX/g' *


> 2) comment faire un "dry run", soit un test qui me liste les
> modifications sans les faire (-n dans rsync)
>

sed -n -s 's/toto/XXXX/gp' *

Mais tu n'auras pas de retour sur les fichiers, uniquement les lignes
qui seront remplacées.

> merci

De rien.

> jdd

JP.
>




Archives gérées par MHonArc 2.6.19+.

Haut de le page