Rien de spécial
Le blog de Régis

Traiter tous les fichiers ayant une extension donnée

Sous Unix, mon besoin est de faire un traitement (disons un ls) sur tous les fichiers donné (disons tous les *.xml) d’un répertoire.

Naturellement, j’écris

for f in*.xml
  
do
  
    ls « $f »
  
done

Les guillemets sont obligatoire pour gérer les noms de fichiers contenant des espaces.

Le problème, c’est que je ne gère pas la casse…;

Après avoir perdu du temps en essayant de modifier IFS, la solution toute simple est d’utiliser read:

ls -1 * | grep -i « .xml$ » | while read f
  
do
      
ls « $f »
  
done