Scripts UNIX

Monty & Cookie

Page principale Curriculum Vitae Questionnaire Contenu Liens
Scripts UNIX
Page mère A propos KConnect4 C++ Scripts UNIX Configuration UNIX

0198
0998
0199

Un script récursif qui lancé dans un répertoire déplace les fichiers de la sous-arborescence dans des répertoires créés pour l'occasion et regroupant ceux-ci en fonction de leur suffixe (suite de lettres suivant un pount). Les fichiers ne présentant pas de suffixe sont regroupés dans répertoire "pool". Les anciens répertoires sont détruits.

#!/bin/csh

set i=$#
switch ($i)
    case 0:
        set liste=`ls`
        foreach i ($liste)
            if ( -f $i ) then
                if ( `echo $i | grep -c "\."` != 0 ) then
                    set suffixe=`echo $i | cut -d. -f2`
                    if ( `ls | grep -cw ^$suffixe` == 0 ) mkdir $suffixe
                    mv $i $suffixe/
                else
                    if ( `ls | grep -cw ^pool` == 0 ) mkdir pool
                    mv $i pool/
                endif
            else
                $0 $i `pwd`
                rmdir $i
            endif
        end
    breaksw
    case 2:
        cd $1
        set liste=`ls`
        foreach i ($liste)
            if ( -f $i ) then
                if ( `echo $i | grep -c "\."` != 0 ) then
                    set suffixe=`echo $i | cut -d. -f2`
                    if ( `ls $2 | grep -cw ^$suffixe` == 0 ) mkdir $2/$suffixe
                    mv $i $2/$suffixe
                else
                    if ( `ls | grep -cw ^pool` == 0 ) mkdir $2/pool
                    mv $i $2/pool/
                endif
            else
                $0 $i $2
                rmdir $i
            endif
        end
    breaksw
endsw

pour télécherger le script download/0198

Un script récursif qui lancé dans un répertoire déplace les fichiers de la sous-arborescence dans des répertoires créés pour l'occasion et regroupant ceux-ci en fonction de leur première lettre de leur nom (tous les fichiers commençant par un "a" dans le répertoire "A", etc ...). Les anciens répertoires sont détruits.

#!/bin/csh

set MIN = (a b c d e f g h i j k l m n o p q r s t u v w x y z)
set MAJ = (A B C D E F G H I J K L M N O P R S T U U V W X Y Z)
set i=$#
switch ($i)
    case 0:
        set liste=`ls`
        foreach i ($liste)
            if ( -f $i ) then
                set lettre=`echo $i | cut -c1`
                set e = 0
                set n = 1
                while ( $e == 0 && $n <= 26 )
                    if ( $MIN[$n] == $lettre ) then
                        @ n--
                        set e=1
                    endif
                    @ n++
                end
                if ( $n <= 26 ) set lettre = $MAJ[$n]
                if ( `ls | grep -cw $lettre` == 0 ) mkdir $lettre
                mv $i $lettre/
            else
                0998 $i `pwd`
                rmdir $i
            endif
        end
    breaksw
    case 2:
        cd $1
        set liste=`ls`
        foreach i ($liste)
            if ( -f $i ) then
                set lettre=`echo $i | cut -c1`
                set e = 0
                set n = 1
                while ( $e == 0 && $n <= 26 )
                    if ( $MIN[$n] == $lettre ) then
                        @ n--
                        set e=1
                    endif
                    @ n++
                end
                if ( $n <= 26 ) set lettre = $MAJ[$n]
                if ( `ls $2 | grep -cw $lettre` == 0 ) mkdir $2/$lettre
                mv $i $2/$lettre
            else
                0998 $i $2
                rmdir $i
            endif
        end
    breaksw
endsw

pour télécharger le script download/0998

 

#!/bin/csh

set i=$#
switch ($i)
    case 0:
        set liste=`ls`
        foreach i ($liste)
            if ( -f $i ) then
                set listel=`ls -l $i`
                set date=$listel[7]
                set mois=$listel[6]
                set ndate=$mois"_"$date
                if ( `ls | grep -cw ^$ndate` == 0 ) mkdir $ndate
                mv $i $ndate/
            else
                0199 $i `pwd`
                rmdir $i
            endif
        end
    breaksw
    case 2:
        cd $1
        set liste=`ls`
        foreach i ($liste)
            if ( -f $i ) then
                set listel=`ls -l $i`
                set date=$listel[7]
                set mois=$listel[6]
                set ndate=$mois"_"$date
                if ( `ls $2 | grep -cw ^$ndate` == 0 ) mkdir $2/$ndate
                mv $i $2/$ndate/
            else
                0199 $i $2
                rmdir $i
            endif
        end
    breaksw
endsw

pour télécharger le script download/0199

frontpag.gif (9866 bytes)
Page précedente Page principale Page mère Page suivante

Envoyer un email à MontyWebMaster@caramail.com avec des questions et commentaires à propos de ce web site.
Copyright © 1998 Monty Web Master
Création du site : le 10 janvier 1998
Dernière modification : le 16 mai 1999 11:09:41