Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/03/2011, 16h05   #1
Invité de passage
 
Inscription : novembre 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 6
Points : 4
Points : 4
Par défaut extraire l'extension d'un fichier avec la commande find

Bonjour à tous.

Je cherche à faire un script qui me converti tous les fichiers .txt d'un répertoire en UTF8.
Je pense atteindre le but avec cette commande :

Code :
find . -name *.txt -exec iconv -f iso-8859-1 -t UTF-8 {} \;
il me reste en fait à rediriger ce que me renvoie la commande iconv dans un fichier.
J'aimerais que ce fichier aie le même nom que l'original mais pas la même extension.
Comment dois-je m'y prendre ?

Merci d'avance pour votre aide.
klem5 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/03/2011, 16h25   #2
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut,

Sans rentrer dans des opérations trop complexes :

Code :
find . -name *.txt -exec iconv -f iso-8859-1 -t UTF-8 {} -o {}.UTF-8 \;
Devrait déjà te permettre d'identifier les 2 versions, non ?

__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 18/03/2011, 17h15   #3
Invité de passage
 
Inscription : novembre 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 6
Points : 4
Points : 4
ah ben oui ça va déjà bien m'aider.
J'aurais préféré ne pas avoir 2 extensions pour la copie, mais le principal c'est que ça fonctionne.

Merci bien!
klem5 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/03/2011, 18h46   #4
Membre éclairé
 
Avatar de FRUiT
 
Homme
Inscription : février 2011
Messages : 83
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2011
Messages : 83
Points : 326
Points : 326
Pour ça tu peux faire un mini script sh.

Code :
1
2
3
4
> cat foo
#!/bin/sh
 
iconv -f iso-8859-1 -t UTF-8 "$1" >"${1%.*}.utf8"
Puis :
Code :
find . -name *.txt -exec foo {} \;
Ou en one-liner mais sans find :
Code :
for F in *.txt; do iconv -f iso-8859-1 -t UTF-8 "$F" >"${F%.*}.utf8"; done
Code :
for F in *.txt; do iconv -f iso-8859-1 -t UTF-8 "$F" -o "${F%.*}.utf8"; done
__________________
Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
FRUiT est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 21/03/2011, 16h50   #5
Invité de passage
 
Inscription : novembre 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 6
Points : 4
Points : 4
Parfait!

j'ai mon script qui fonctionne à merveille :

Code :
1
2
3
4
5
6
7
8
 
/bin/sh
 
TXTPATH="${SRCROOT}/assets/Pages"
TXT_EXT='*.txt'
for f in $(find $TXTPATH -name $TXT_EXT); do
   iconv -f iso-8859-1 -t UTF-8 "$f" > "${f%.*}.utf8"
done
Merci à vous deux !
klem5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 17h39   #6
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 153
Points : 4 153
restons

ON NE FAIT PAS :
Code :
for item in $(commande)
car si un élément retourné par commande comporte un des caractères de l'IFS, chaque partie de cet élément sera considéré comme un élément à part.

Soit on utilise le Développement des chemins (cf. man bash) de l'interpréteur de commande,
soit on utilise l'option-commande -exec de la commande find.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h33.


 
 
 
 
Partenaires

Hébergement Web