Page 1 sur 1

Aidez-moi à finir ce petit script répétant une commande

Publié : jeu. 14 sept. 2006, 20:56
par kozaki
Siouplait je cherche un modèle de script BASH répétant une commande sur chaque fichiers d'un répertoire

Pour résumer :
- Quelques centaines de fichiers encodés en charsets variés, à passer en UTF-8.
- j'ai enfin trouvé la librairie qui analyse et convertit à merveille : utrac
- Je ne sais traiter qu'un fichier à la fois vu que suis un désastre en Algo sans parler de Bash :?

La commande manuelle est :

Code : Tout sélectionner

utrac /repertoire/fichier /repertoire/fichier_utf8
Ça doit ressembler à qqch comme ça, avec des `` ou {} quelque part je parie ?

Code : Tout sélectionner

#!/bin/bash
# Conversion du charset et fin de ligne de tous les fichiers du rep courant
for i in * do
# vers celui par defaut du systeme (UTF-8) avec utrac
utrac $i >$i.utf8
done
echo "Fait."
Si je pouvais trouver un petit exemple de script s'approchant ce serait un petit pas pour l'algo... et un grand saut pour moi :wink:

Publié : jeu. 14 sept. 2006, 21:19
par kozaki
Ce bout de script fonctionne...

Code : Tout sélectionner

#!/bin/bash

utrac=/home/kozaki/src/bin/utrac

cd "$1"
for filename in *.php
do
        $utrac "$filename" >"${filename%.php}.utf8"
done
exit 0

...enfin il crée un [fichier.utf8] en UTF-8 avec fin de ligne LF pour chq occurrence de *.php :)

Comment améliorer un peu ça pour :
1. Renommer tous les fichiers en [fichier.extension.old]
2. lancer utrac sur ces derniers en obtenant les fichiers convertis sous la forme [fichier.extension] ?

Publié : jeu. 14 sept. 2006, 22:17
par wain
kozaki a écrit :Ce bout de script fonctionne...
...enfin il crée un [fichier.utf8] en UTF-8 avec fin de ligne LF pour chq occurrence de *.php :)

Comment améliorer un peu ça pour :
1. Renommer tous les fichiers en [fichier.extension.old]
2. lancer utrac sur ces derniers en obtenant les fichiers convertis sous la forme [fichier.extension] ?
Voilà qui devrait fonctionner :)

Code : Tout sélectionner

#!/bin/bash

utrac=/home/kozaki/src/bin/utrac

cd "$1"
for filename in *.php
do
    mv "$filename" "${filename}.old"
    $utrac "${filename}.old" >"${filename%.php}.utf8"
done
exit 0

Publié : ven. 15 sept. 2006, 01:00
par kozaki
Bah vi :lol:
Encore mieux en renommer avec la bonne extension direct, ici pour les feuilles de style css :

Code : Tout sélectionner

#!/bin/bash

utrac=/home/kozaki/src/bin/utrac

cd "$1"
for filename in *.css
do
    mv "$filename" "${filename}.old"
    $utrac "${filename}.old" >"${filename%.css}.css"
done
exit 0
Wain -> merci