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 :
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 *.txt
do
#traitements des fichiers...
done
ou qq chose comme ça mais la commande find n'est pas interprétée.for fichier in "find . -name *.txt"
do
#traitements des fichiers...
done
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
Avec ce script, j'ai une erreur : ./test.sh: line 6: fichier2 : commande introuvable#!/bin/bash
for fichier in test/dossier1/*.txt
do
echo $fichier
fichier2 ="basename $fichier .txt"
done
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.
Partager