#1 Le 19/11/2009, à 12:52
- rafgug
[Résolu] Ls récursif et noms de fichiers
Bonjour à tous!
J'aimerais faire un petit code bash qui modifie l'encodage de fichiers contenus dans un répertoire de manière récursive. Voici ce que j'ai fait pour l'instant:
for i in `ls -R`
do
if [[ $i == *.php || $i == *.tpl || $i == *.css || $i == *.js ]]
then
echo "$i";
iconv -f ISO8859-15 -t UTF-8 $i > $i
fi
done
Mon problème c'est que tous les fichiers sont enregistrés à la racine après: /aaa/fichier.php est copié dans /fichier.php
Comment faire pour tenir compte de l'arborescence?
Merci! :-)
Raf
Dernière modification par rafgug (Le 19/11/2009, à 15:50)
Hors ligne
#2 Le 19/11/2009, à 13:06
- Hawkmoon
Re : [Résolu] Ls récursif et noms de fichiers
remplace la commande
for i in `ls -R`
par
find . -type f
Tagazok à toi, mon frère !
Hors ligne
#3 Le 19/11/2009, à 13:36
- sputnick
Re : [Résolu] Ls récursif et noms de fichiers
Vite fais sans avoir testé :
find . -type f -name '*.php' -name '*.tpl' -name '*.css' -name '.js' -exec iconv -f ISO8859-15 -t UTF-8 {} \;
Dernière modification par sputnick (Le 19/11/2009, à 13:37)
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#4 Le 19/11/2009, à 13:46
- Hawkmoon
Re : [Résolu] Ls récursif et noms de fichiers
ne doit pas marche.
Find fonctionne avec des ET et non des OU.
Un fichier ne peut pas se terminer par .js ET par .php
Tagazok à toi, mon frère !
Hors ligne
#5 Le 19/11/2009, à 13:53
- sputnick
Re : [Résolu] Ls récursif et noms de fichiers
Exact :
find . -type f \( -name '*.php' -o -name '*.tpl' -o -name '*.css' -o -name '.js' \) -exec iconv -f ISO8859-15 -t UTF-8 {} \;
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne
#6 Le 19/11/2009, à 13:54
- AnsuzPeorth
Re : [Résolu] Ls récursif et noms de fichiers
Bjr,
Plutot: (avec jpg et png en recherche, c'est juste un copier/coller de mes notes )
find /home/user/images -iregex ".*\.\(jpg\|png\)"
find /home/user/images -name "*\.jpg" -o -name "*\.png"
Dernière modification par AnsuzPeorth (Le 19/11/2009, à 13:59)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#7 Le 19/11/2009, à 14:54
- rafgug
Re : [Résolu] Ls récursif et noms de fichiers
Merci pour votre réponse!
Hawkmoon, j'ai une petite question par rapport à ta réponse: dans mon cas, je parcourais les résultats via la variable i. Puis-je faire de même ici
Merci!
Raf
Hors ligne
#8 Le 19/11/2009, à 15:04
- Hawkmoon
Re : [Résolu] Ls récursif et noms de fichiers
find . -type f |while read i
do
ce que tu veux avec $i
done
NB : les bonnes pratiques interdisent l'utilisation de variables aussi peu "parlantes"
Tagazok à toi, mon frère !
Hors ligne
#9 Le 19/11/2009, à 15:50
- rafgug
Re : [Résolu] Ls récursif et noms de fichiers
Merci beaucoup! :-)
Hors ligne
#10 Le 19/11/2009, à 16:20
- sputnick
Re : [Résolu] Ls récursif et noms de fichiers
find . -type f -exec bash -c 'echo "something with $1"' -- {} \;
Ca permet des trucs assez chiadés
On ne peut pas mettre d'array dans un string!
https://sputnick.fr/
Hors ligne