OVH Cloud OVH Cloud

Remplacer tous les ".png" par des ".jpg"

15 réponses
Avatar
Olivier V
Bonjour,

Je cherche à remplacer toutes les occurrences ".png par des ".jpg"
dans TOUS les fichiers .html d'un répertoire.

Je suppose qu'il y a moyen de faire cela par une commande ...
mais progressant fort lentement,
je m'en remets à vous ...

Merci d'avance.

Olivier V

5 réponses

1 2
Avatar
Stephane Chazelas
2005-01-20, 19:29(+01), Olivier V:
[...]
[ essais2]$ remplace_png_jpg3
/home/user/bin/convertisseurs/remplace_png_jpg3: line
3:         sed -e s/png/jpg/g -- theme-3.html : No such file or directory
[...]


Ces espaces sont des espaces insecables iso8859-1 (0xa0), il
faut des espace normales (0x20)..

Faire un "cat -vte le-script" pour les identifier.

--
Stéphane

Avatar
Olivier V
oli-cla wrote:

Et ca ca marche pas par hasard ?

for ficpng in *.png
do
fictmp=$(ls $ficpng | cut -f 1 -d .)
ficjpg=$fictmp.jpg
mv $ficjpg $ficpng
done


Pas du tout :

[ essais2]$ remplace_png_jpg5
/home/user/bin/convertisseurs/remplace_png_jpg5: line 1: ls theme003.png :
command not found
/home/user/bin/convertisseurs/remplace_png_jpg5: line 1:  cut -f 1 -d .:
command not found
/home/user/bin/convertisseurs/remplace_png_jpg5: line 4:     fictmp=:
command not found
/home/user/bin/convertisseurs/remplace_png_jpg5: line 5:     ficjpg=.jpg:
command not found
/home/user/bin/convertisseurs/remplace_png_jpg5: line
6:     mv  theme003.png: command not found

Olivier V

Avatar
Bruno Mathieu
oli-cla a écrit:

Bonjour,

Je cherche à remplacer toutes les occurrences ".png par des ".jpg"
dans TOUS les fichiers .html d'un répertoire.



#!/bin/sh
echo Se placer dans le répertoire qui contient les fichiers html...
for i in *.html; do
echo traitement de $i.
sed -e 's/.png/.jpg/g' <$i >$i.new; # s'il n'y a pas de fichier html.new
mv $i.new $i; # si on est sûr du script ;-)
done
echo Voilà

--
Bruno


Avatar
Jean-Philippe Caruana
sed -e -i s/chaine1/chaine2/g $i


Suivant vos conseils, j'ai fait :

#!/bin/bash
for i in *.html; do
sed -e -i s/png/jpg/g $i;
done;

Mais cela ne fonctionne pas.
Qu'est ce qui est mauvais ?


comment ca "cela ne fonctionne pas" ? je veux dire, qu'obtenez vous ?

essayez sans le -e, je ne vois pas à quoi il sert ici (je l'avais
gardé par rapport aux autres posts)

sed -i s/.png/.jpg/g $i;


Avatar
Olivier V
Jean-Philippe Caruana wrote:

comment ca "cela ne fonctionne pas" ? je veux dire, qu'obtenez vous ?


[ essais3]$ converttojpg
sed: -e expression n°1, caractère 1: Commande inconnue: `-'
sed: -e expression n°1, caractère 1: Commande inconnue: `-'
[ essais3]$

essayez sans le -e, je ne vois pas à quoi il sert ici (je l'avais
gardé par rapport aux autres posts)

sed -i s/.png/.jpg/g $i;


Là c'est c'est bon.

Merci beaucoup.

Olivier V

1 2