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

Répondre à