
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