Forum Programmation.shell script en Bourne Shell

Posté par  .
Étiquettes : aucune
0
19
fév.
2006
Salut ! je débute en Bourne shell, et je veux faire un script qui tire les fichiers du répertoire courant, en les rangeant dans des sous-répertoires en fonction de leur extension (le nom de chaque sous-répertoire étant l'extension des fichiers)

j'ai bien une vague idée sur la procédure à suivre (commande "grep" + méta-caractères) mais je bloque.

Pouvez-vous m'aider ?
  • # pas besoin de grep

    Posté par  . Évalué à 2.

    Salut, 2 boucles imbriquées suffisent :
    #!/bin/sh
    
    # Extensions connues
    EXTENSIONS='jpg txt sxw	ods odt'
    
    # pour chaque extension
    for I in $EXTENSIONS; do
    	# Le répertoire de cette extension existe t'il ?
    	if ! [ -d $I ]; then
    		# si non, on le créé.
    		mkdir $I		
    	fi
    	# pour chaque fichier de cette extension
    	for J in *.$I; do
    		# on déplace le fichier dans le bon répertoire
    		mv $J $I/$J
    	done
    done
    
  • # autre solution

    Posté par  . Évalué à 6.

    en une seule boucle, et pour toutes les extensions ;-)
    #!/bin/bash
    
    # on se met dans le répertoire passé en paramètre
    cd $1
    
    for file in *; do
       # récupère l'extension du ficher
       ext=${file/*.};
       
       # crée le répertoire si il n'existe pas, puis déplace le fichier dedans
       test -d $ext || mkdir $ext && mv "$file" $ext;
    
    done
    

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.