| C’est parti pour un peu de bash-foo : mkdir -p /tmp/testdir && for i in $(grep -lire toto .); do( j=`sed 's/^/\/tmp\/testdir\//' "$i"`; cat "$i" | sed 's/toto/XXXX/g' > "$j"; ); done La ligne ci-dessus :
Pour finir la transformation :
mkdir -p /tmp/testdir && for i in $(grep -lire toto .); do( j=`sed 's/^/\/tmp\/testdir\//' "$i"`; cat $i | sed 's/toto/tutu/g' > $j && cp "$j" "$i" ); done Evidemment on ne saurait que trop recommander de sauvegarder les données avant : tar cvfz /path/to/SAVE.tar.gz . # par exemple S. PS: attention, il faut contrôler et éviter que les noms de fichier ne contiennent des espaces, des quote et des double-quote (Dans ce cas, répondre à la liste, la ligne sera un peu plus longue :) ) PS2: le type de quote dans la question initiale est ' - 4 PS3: Si le nombre de fichiers est *vraiment* trop grand, il faudra batcher - pareil, si la sauvegarde et/ou /tmp/testdir ne tiennent pas sur 1To, répondre à la liste et je verrai si je peux relever le challenge un peu +
|