logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 13-10-2009 08:08:23

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Script - sed - modifier en série une "chaîne de caractères"

ATTENTION !
L'usage de la commande find demande une bonne compréhension de ce que l'on fait !

Pour supprimer la chaîne de caractères "IMG_" imposée dans mes fichiers php, je lance, depuis le répertoire les contenant :

$ cd /chemin/du/repertoire/
# find  -type f -print0 | xargs -0 sed -i 's/IMG_//g'


A noter que la commande peut renommer tout aussi bien la chaîne de caractères... big_smile

Par exemple :

$ cd /chemin/du/repertoire/
# find  -type f -print0 | xargs -0 sed -i 's/IMG_/paysage_/g'


Remplace "IMG_" par "paysage_" !


saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#2 13-10-2009 11:54:06

Geai dechaine
Membre
Lieu : Provence
Distrib. : Debian 9 Stretch
(G)UI : KDE
Inscription : 25-06-2009

Re : Script - sed - modifier en série une "chaîne de caractères"

Salut,

Autre possibilité, associer find à exec, genre

find . -type f -exec sed -i "s/IMG_/paysage_/g" {} \;


pc Medion MT6, cg ATI X300SE. J'utilise aptitude.

Hors ligne

#3 14-10-2009 15:38:58

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : Script - sed - modifier en série une "chaîne de caractères"

Ou bien sûr :

find . -type f -exec sed -i "s/IMG_/paysage_/g" {} \+


Le + à la fin permetttant le traitement des fichiers en série et non plus un par un. C'est à dire que find passe au fichier suivant sans reprise de tous les fichiers à chaque fois.

Merci Geai déchaine !

Complément à la commande sed :

Il peut arriver que nous souhaitions renommer avec des slash par exemple.
Il suffit de remplacer les slash de la commande par des virgules par exemple, ainsi :

find . -type f -exec sed -i "s,/IMG_,/paysage_,g" {} \+


Et ainsi, plus besoin d'échappement \ à utiliser, avec les risques d'écriture possible.

Merci à StalkR pour son amical intervention sur le chan #debianfr. smile

Amitié, Joel

Dernière modification par smolski (06-07-2010 18:08:13)


saque eud dun (patois chtimi : fonce dedans)

Hors ligne

Pied de page des forums