salut à tous,

Je débute en bash 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.