Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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.

Hors 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.

smile

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.

Hors 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