Analyse de repertoire

yepimback -  
 Utilisateur anonyme -
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

4 réponses

  1. yepimback
     
    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
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
  3. yepimback
     
    Merci pour ta réponse.

    Quand je fais ça... ça me renvoie un tableau vide.
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Montres ce que tu fais.
      0
  4. Utilisateur anonyme
     
    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