#1 Le 12/12/2019, à 15:58
- ilies213
Parcourir et lire fichier d'un repertoire
Alors bonjour, tout d'abord désolé si je suis au mauvais endroit j'ai essayé de trouver le plus approprié selon les descriptions de chaque section.
Pour en venir au fait :
Je souhaite parcourir les fichiers -f d'un repertoire (repertoire courant), et de les lire seulement si ils commencent par "m_statsession_" . Ensuite les fichiers contenant plusieurs lignes de cette forme : "XX:YY:" ,je parcours chaque ligne en cherchant le max YY et je le stock dans un autre fichier. Cette façon de le faire me paraît correcte mais ne fonctionne pas..
find $rep -type f | while ( read FIC
do
if [ $FIC == "m_statsession_*.csv"]
then
#echo $maxmois
maxmois=$(echo $line | cut -d":" -f2)
if (($maxtmp > $maxmois))
then
maxmois=$maxtmp
fi
fi
done
echo "$mois:$maxmois:" >> a_statsession_$annee.csv )
Merci bien !
EDIT : 2 petites fautes qui me faisaient mal aux yeux ^^
Dernière modification par ilies213 (Le 12/12/2019, à 16:10)
Hors ligne
#2 Le 12/12/2019, à 16:11
- Watael
Re : Parcourir et lire fichier d'un repertoire
salut,
ça te semble correct, mais ça ne l'est pas.
while IFS=':' read -ra ar
do
echo "check max with: ${ar[1]}"
done <./m_statsession_*.csv >autreFichier
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#3 Le 12/12/2019, à 16:18
- ilies213
Re : Parcourir et lire fichier d'un repertoire
Salut à toi,
Déjà merci de ta réponse, oui je me doutais bien que ça n'était pas correct malheureusement.
while IFS=':' read -ra ar
J'aurais une question là dessus, je suppose que le IFS=":" est là pour préciser le séparateur mais qu'en est il du "read -ra ar" ?
Hors ligne
#4 Le 12/12/2019, à 17:50
- Watael
Re : Parcourir et lire fichier d'un repertoire
je me doutais bien que ça n'était pas correct malheureusement.
read -ra ar construit un tableau/liste (ar) indexé à partir de 0 (le premier élément du tableau/liste est "${ar[0]}").
cf. help read.
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#5 Le 13/12/2019, à 10:40
- ilies213
Re : Parcourir et lire fichier d'un repertoire
Merci bien, j'ai effectué quelques test en en fait la lecture du fichier se passait bien (elle marche toujours avec ta méthode), cependant mon problème reste le fait de parcourir le repertoire courant et de lire seulement les 12 fichiers de la forme :
m_statsession_$mois.txt
avec $mois = 1 ...... 12, quand j'utilise ta façon de faire cela donne ça :
while IFS=':' read -ra ar
do
echo "check max with: ${ar[1]}"
done <./m_statsession_*.csv >> a_statsession_$annee.csv
#echo "$mois:$maxmois:" >> a_statsession_$annee.csv
Et le retour :
./metris_stat2.sh: line 96: ./m_statsession_*.csv: Aucun fichier ou dossier de ce type
et donc mon fichier a_statsession_$annee.csv reste vide.
(metris_stat2.sh étant mon script)
Tu vois d'où cela peut provenir ?
EDIT : (il y'a bien un fichier nommé m_statsession_12.csv dans mon repertoire courant contenant des lignes de cette forme : $NumeroDuJour:$UnNombre:)
Dernière modification par ilies213 (Le 13/12/2019, à 10:44)
Hors ligne
#6 Le 13/12/2019, à 11:14
- ilies213
Re : Parcourir et lire fichier d'un repertoire
Désolé du double post/
C'est juste pour dire que je passe le topic à résolu, j'ai trouvé un autre moyen de faire afin de contourner, je lance le script chaque 1er du mois suivant et je parcours le fichier du mois précédant afin de ne pas avoir à attendre la fin de l'année et les 12 fichiers à parcourir (ce qui me posait problème)
Merci à toi Watael !
Hors ligne