[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: remplacement occurence dans plusieurs fichiers



Le 12382ième jour après Epoch,
allali@univ-mlv.fr écrivait:

> Wallace wrote:
>> Bonjour,
>> J'ai deplace une gallery photo faite avec Gallery, mais cette
>> derniere ne marche plus
>> car dans beaucoup de fichiers sont mis en dur le pwd de la photo.
>> Il est impossible de faire le remplacement de ce chemin a la main un
>> simple grep donne plusieurs centaines de resultats.
>> Quelle commande utiliser pour lui passer la chaine existante ex
>> /home/toto/gallery/ , celle que l'on veut mettre en remplacement
>> /home/sites/toto/gallery/ et un repertoire a parcourir en recursif?
>> Merci par avance
>>
>
> A tester avant de faire la commande !!! :
>
> explications:
> 1- on crée un petit script shell qui contient la commande:
>
> cat "$1" |  sed
> "s/\/home\/toto\/gallery\//\/home\/sites\/toto\/gallery\//g" > "$1"

Dans sed, le caractère qui suit le s est le séparateur. Du coup, si
les chaînes contiennent pas mal de /, on peut avantageusement dire des
trucs du genre:

sed -e 's./home/my/first/dir./home/my/second/dir.'

de même, 'cat xxx | sed ...' peut être avantageusement remplacé par
'sed ... < xxx' non?

Enfin, faire 'sed ... < xxx > xxx' peut être assez dangereux pour le
fichier xxx !

-- 
Do not throw cigarette butts in the urinal, for they are subtle and
quick to anger.



Reply to: