Salut,
laborde stephane wrote:

> for fichier in "find . -name *.txt"
> do
>     #traitements des fichiers...
> done

plusieur methodes:
find . -name \*.txt | while read fichier
do
    # traitement
done
for fichier in $(find . -name \*.txt)
do
    # traitement
done
find . -name \*.txt -exec montraitement {} \;
> 
> 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
find . -name \*.txt | while read fichier
do
    echo $fichier
    fichier2 =$(basename $fichier )
    fichier2 =${fichier2%.*}
done
ou
find . -name \*.txt | while read fichier
do
    echo $fichier
    fichier2 =${$fichier##*/}
    fichier2 =${fichier2%.*}
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.


si tu veux utiliser le resultat d'une commande utilise
$( commande )
ou
` commande `  - c'est le backquote et pas la doublequote-
- le double crotte n'execute pas les commande, mais expand juste les
parametres-


> 
> Quelle est la bonne syntaxe dans ce cas ? La page de man de basename ne 
> m'a pas aidé...
La c'est le man du bash qu'il faudrait lire a fond, basename y est pour 
rien.

> 
> Merci pour votre aide.
> 


_________________________________
Linux mailing list
[email protected]
http://lists.parinux.org/mailman/listinfo/linux

Répondre à