Lire le nom des fichiers dans un dossier

Bonjour, j’aimerais pouvoir lire en BASH la liste des noms des fichiers contenuent dans un dossier et par la suite boucler sur ceux-ci afin de faire diverses tâches.
Je ne suis pas un pro du script bash et toutes les réponses sont acceptées.
ps: j’essaye déjà depuis un petit moment et je n’y arrive toujours pas.

1/ man bash :mrgreen:
2/ ls ou echo * te donnent la liste des fichiers du répertoire courant.
3/ une boucle for sur tous les fichiers du rep doit avoir une syntaxe du genre:

for fic in * ; do <un truc avec $fic> ; done

effectivement for fic in *;do “some work”; done; boucle sur chaque fichier dans mon repertoire maintenant comment je fais pour afficher par exemple le nom de chaque fichier a chaque fois dans cette boucle de facon à ce que pour chaque nom de fichier je travail dessus par exemple.

le nom de chaque fichier est dans $fic

tu remplaces “some work” par echo “le fichier à traiter s’appelle $fic”.

mouarf j’était persuadé que fic c’était un incrémenteur … !=)
merci beaucoup en tout cas:)
Juste une derniere chose est il possible de récupérer le nom du fichier sans l’extension cette fois?

avec un petit cut !

echo ton fichier | cut -f 1 -d “.” ATTENTION c est de memoire et je suis sous Windows en ce moment mais un man cut devrait te redonner la bonne syntaxe

AH

j’ai effectivement testé et ça marche sauf dans une boucle for:
for fic in * ; do var=$fic |cut -f 1 -d “.”;echo $var; done

qui a pour conséquence de m’afficher une ligne vide pour autant de fichier qu’il trouve dans mon repertoire.
Ai-je fais une bétise ?

et cela:

var=echo $fic |cut -f 1 -d "."

Non ça ne marche pas en fait ça écrit le texte brute non interprété

En fait quand j’écris ça:
m=hello.avi;echo $m | cut -f 1 -d “.”;
retourne : hello

Maintenant si j’écris:
m=hello.avi;n=$m | cut -f 1 -d “.”;echo $n;
retourne: hello.avi

C’est pas très normal, je dois faire quoi pour contourner ce bug?

[quote=“spizer”]En fait quand j’écris ça:
m=hello.avi;echo $m | cut -f 1 -d “.”;
retourne : hello

Maintenant si j’écris:
m=hello.avi;n=$m | cut -f 1 -d “.”;echo $n;
retourne: hello.avi

C’est pas très normal, je dois faire quoi pour contourner ce bug?[/quote]Ce n’est pas un bug, juste que tu ne vois pas bien ce que tu fais.
Que renvoie n=$m sur sa sortie standard qui part vers le cut ?
Et pourquoi as tu besoin de cette variable intermédiaire ?

@ spizer:
mattotop a raison, ton $n ne sert à rien en fait, mais pour continuer dans ta logique, cette commande marche:

Il est également possible de faire ceci :

nom={$nomsuffixe%.*}

[quote=“Pozzy”]Il est également possible de faire ceci :

nom={$nomsuffixe%.*} [/quote]

ce n est pas nom=${nomsuffixe%.*} ??

AH

[quote=“ahillerin”][quote=“Pozzy”]Il est également possible de faire ceci :

nom={$nomsuffixe%.*} [/quote]

ce n est pas nom=${nomsuffixe%.*} ??

AH[/quote]
En effet, désolé pour la coquille.

Lol, si je met une variable c’est que j’en ai besoin plutard c’est pas pour le plaisir que je la met :wink: Je pensais que vous le comprendriez.
en tout cas merci pour toutes ces réponses je vais tester ça tout de suite. :smiley:

Oki, c’est bon la version de tukuyomi marche très bien merci mille fois pour votre reactivité.
Je tiens à dire pour ceux qui veraient ce thread que ce forum est extremement reactif et que je suis pleinement satisfait des réponses.
Merci à tous :slightly_smiling: