salut à tous,
Je débute en bach et j'ai 2 petites questions que j'ai pas réussi à
résoudre hier soir.
1) Je voudrais faire quelques traitements sur des fichiers textes
répartis dans des dossiers et sous-dossiers.
J'ai donc qq chose comme ça :
for fichier in *.txt
do
#traitements des fichiers...
done
ce petit bout de script fonctionne bien pour traiter les fichiers txt
qui se trouvent dans le même dossier que lui mais s'il y a des
sous-dossier, les fichiers contenus dedans ne sont pas traités. Je
voudrais donc faire un truc du genre :
for fichier in "find . -name *.txt"
do
#traitements des fichiers...
done
ou qq chose comme ça mais la commande find n'est pas interprétée.
La question est très simple, comment faire pour traiter aussi tous les
sous-répertoires ?
2) Dans les traitements dont je parle plus haut, je voudrais extraire le
nom du fichier sans extension et sans chemin. Je veux donc utiliser la
commande basename mais je ne suis pas parvenu à l'utiliser
#!/bin/bash
for fichier in test/dossier1/*.txt
do
echo $fichier
fichier2 ="basename $fichier .txt"
done
Avec ce script, j'ai une erreur : ./test.sh: line 6: fichier2 : commande
introuvable
J'ai essayé diverses combinaisons de la ligne 6 (avec ou sans
guillemets) mais sans succès pour l'instant.
Quelle est la bonne syntaxe dans ce cas ? La page de man de basename ne
m'a pas aidé...
Merci pour votre aide.
--
a+
Stephane.
_________________________________
Linux mailing list
[email protected]
http://lists.parinux.org/mailman/listinfo/linux