Analyse de repertoire

Fermé
yepimback - 18 juil. 2013 à 17:07
 Utilisateur anonyme - 19 juil. 2013 à 11:42
Bonjour,


je voudrais faire un check des fichiers par repertoires et y integrer quelques libellés:

pour cela j'ai un fichier de config qui intègre le nom des repertoires que je veux checker:
envrep="/home/test"
cat file.txt #=>represente les repertoires qui sont present dans $envrep
100
101
102
103
104
105



ma boucle qui marche très bien:
cat file.txt|while read line; do
if [ -d "$envrep/$line" ]
then
Nbr='find $envrep/$line \( ! -name $line -prune \) -type f 2> /dev/null |wc -l'
if [[ $Nbr -gt 0 ]]
then
oldfile='ls -lrt $envrep/$line/|head -1|awk {' print $8 '}'
oldfilenm='ls -lrt $envrep/$line/|head -1|awk {' print $9 '} |rev|cut -b 1-16|rev'
newfilenm='ls -lrt $envrep/$line/|tail -1|awk {' print $8 '}'
printf "#%11s %20s %15s %25s %20s %10s\n" "$line" "$Nbr" "$oldfile" "$oldfilenm" "$newfilenm" "#"
fi
fi
done
}

printf '\033[1;30;47m'
echo "#-------------------------------------------------------------------------------------------------------#"
printf "#%11s %10s %15s %25s %25s %5s\n" "Repertoire" "Nbr" "+ ancien" "FileName + ancien" "Heure + recent" "#"
echo "#-------------------------------------------------------------------------------------------------------#"
printf '\033[0m'
count
echo "#-------------------------------------------------------------------------------------------------------#"



RESULTAT:

(je ne sais pas si ça va se voir dans le cadre de la fenetre du navigateur mais bon...)

#------------------------------------------------------------------------------------------------------------#
# Repertoire Nbr + ancien FileName + ancien Heure + recent #
#------------------------------------------------------------------------------------------------------------#
# 102 12 20:01 fic.exte 04:12 #
# 105 15 23:09 hok.txt 05:29 #
#####################################################################



ce que je voudrais faire c'est rajouter un libellé:
RESULTAT VOULU:
#-----------------------------------------------------------------------------------------------------------------------------#
# Repertoire NOM Nbr + ancien FileName + ancien Heure + recent #
#-----------------------------------------------------------------------------------------------------------------------------#
# 102 Pascal 12 20:01 fic.exte 04:12 #
# 105 Remy 15 23:09 hok.txt 05:29 #
#-------------------------------------------------------------------------------------------------------------------------------

je pensais pouvoir intégrer le nom dans le fichier conf

cat file.txt =>représente les repertoires qui sont present dans $envrep
100;eric
101;moi
102;Pascal
103;Bill
104;Robert
105;Remy



où intégégré ma nouvelle variable NOM pour qu'elle soit vraiment prise en compte dans mon tableau à chq fois que la variable $line apparait ?

Si vous avez une idée
A voir également:

4 réponses

par contre c'est vachement mal présenté... je comprend pas.


le tableau est trop grand pour la page du navigateur.... là c'est moche.


cat file.txt|while read line; do 
if [ -d "$envrep/$line" ] 
then 
Nbr='find $envrep/$line \( ! -name $line -prune \) -type f 2> /dev/null |wc -l' 
if [[ $Nbr -gt 0 ]] 
then 
oldfile='ls -lrt $envrep/$line/|head -1|awk {' print $8 '}' 
oldfilenm='ls -lrt $envrep/$line/|head -1|awk {' print $9 '} |rev|cut -b 1-16|rev' 
newfilenm='ls -lrt $envrep/$line/|tail -1|awk {' print $8 '}' 
printf "#%11s %20s %15s %25s %20s %10s\n" "$line" "$Nbr" "$oldfile" "$oldfilenm" "$newfilenm" "#" 
fi 
fi 
done 
} 
printf '\033[1;30;47m' 
echo "#---------------------------------------------------------------------#" 
printf "#%11s %10s %15s %25s %25s %5s\n" "Repertoire" "Nbr" "+ ancien" "FileName + ancien" "Heure + recent" "#" 
echo "#---------------------------------------------------------------------#" 
printf '\033[0m' 
count 
echo "#----------------------------------------------------------------------#" 


#-------------------------------------------------------------------# 
# Repertoire Nbr  +ancien   FileName+ancien   Heure + recent   # 
#-----------------------------------------------------------------------------# 
# 102	     12          20:01        fic.exte	    04:12	  # 
# 105        15         23:09       hok.txt     05:29          # 
############-################################## 
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
18 juil. 2013 à 18:38
Salut,

Avec un fichier en entrée de la sorte :
100;eric
101;moi
102;Pascal
103;Bill
104;Robert
105;Rem 
 

Il te suffit de modifier comme suit :
cat file.txt|while IFS=";" read nombre nom; do 

Et d'appeler tes variables ainsi créées ;-))
0
Merci pour ta réponse.

Quand je fais ça... ça me renvoie un tableau vide.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
19 juil. 2013 à 11:33
Montres ce que tu fais.
0
salut,

il faut préférer stat, plutôt que ls!
ls à parser, c'est la plaie.
stat n'affiche que les données souhaitées.
0