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 01/09/2010, à 14:35

Hizoka

[resolu] traitement d'un gros fichier texte

Bonjour,

je souhaite lancer une commande mencoder de type :

mencoder blabla &> "/tmp/dts2ac3_retour.txt"

je récupere bien un fichier texte qui s'incremente de type :

Pos:2260.5s  54199f (38%) 951.14fps Trem:   1min 449mb  A-V:0.051 [0:640]

je veux récupérer le pourcentage, ok je sais comment faire.

le probleme, c'est que je ne peux recuperer cette derniere ligne...
grep, tail, sed ne fonctionnent pas... ils ne me renvoient rien dans une variable et dans le terminal m'affiche le resultat de facon erroné :

hizoka@hizo-pc:~$ tail -1 "/tmp/dts2ac3_retour.txt"
hizoka@hizo-pc:~$ Pos:2260.5s  54199f (38%) 951.14fps Trem:   1min 449mb  A-V:0.051 [0:640]

alors mencoder envoie quelque 10/100ene de milliers de lignes en quelques minutes, me retrouvant avec un fichier de 10-20mo, est-ce dû à ça ?

là je suis un peu paumé...

merci.

EDIT : les options "msglevel", "-quiet" n'aident pas...

Dernière modification par Hizoka (Le 18/12/2011, à 02:32)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#2 Le 01/09/2010, à 15:05

iuchiban

Re : [resolu] traitement d'un gros fichier texte

salut, tu as quoi comme commandes actuellement pour tenter de récupérer le pourcentage et tu as quoi comme erreurs aussi ?

grep, tail, sed ne fonctionnent pas... ils ne me renvoient rien dans une variable et dans le terminal m'affiche le resultat de facon erroné :

Je ne vois pas de problème avec le tail -1 hmm

Et pour ton fichier de 20Mo, c'est quasiment rien.
Au boulot, quand je vais des recherches dans les logs apache, j'ai des fichiers de 100-150Mo, qui font plus de 300 000 lignes chacuns (donc quelques millions de lignes à traiter). Ca prends juste beaucoup de temps, mais grep, tail, find, cut, awk, sed, n'ont aucun soucis à traiter ces fichiers.


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

#3 Le 01/09/2010, à 15:36

Hizoka

Re : [resolu] traitement d'un gros fichier texte

je n'ai aucun retour d'erreur.

tail -1, sed -n '$p', grep "xxx" | tail -1

ne me renvoient jamais une variables utilisable, quand je l'appelle, le terminal cherche.... et ne me renvoi rien...

je pense plutot que c'est du au fait qu'il y a de tres grandes modification du fichier en tres peu de temps et que du coup il n'arrive pas me renvoyer le resultat non ?


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#4 Le 01/09/2010, à 16:37

iuchiban

Re : [resolu] traitement d'un gros fichier texte

Je viens de faire un test sur un log Apache :

$ cut -d"[" -f2 access_log | cut -d"]" -f1 | sort | cut -b1-14 | uniq -c
4308 20100901-16:30
4986 20100901-16:31
5547 20100901-16:32
4802 20100901-16:33
3897 20100901-16:34

J'ai plus ou moins 5000 requêtes par minutes.
Si je fais

tail -f access_log  | cut -d"[" -f2 | cut -d"]" -f1

ça m'affiche que mon champ date qui se situe entre [ ]

En fait, qu'est ce que tu veux faire une fois que tu as récupéré le % ??


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

#5 Le 01/09/2010, à 17:37

Hizoka

Re : [resolu] traitement d'un gros fichier texte

étrange...

il faudrait que vous puissiez tester sur une commande mencoder...

le pourcentage me sera utile pour l'envoyer dans une interface graphique dans une barre de chargement.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#6 Le 01/09/2010, à 17:44

Hizoka

Re : [resolu] traitement d'un gros fichier texte

alors là...

je pige pas :

echo $variable

ne fonctionne pas alors que :

echo "$variable"

fonctionne...


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#7 Le 01/09/2010, à 19:51

ehmicky

Re : [resolu] traitement d'un gros fichier texte

Quelle commande fais-tu exactement ? S'agit-il bien de :

mencoder FILE &> /tmp/FILE_TMP
tail -n1 /tmp/FILE_TMP

Si oui, pourquoi n'uploaderais-tu pas ce fichier, pour qu'on essaye de notre côté de faire un tail...
Est-ce que la dernière ligne du fichier ne serait pas vide ? En fait, il me semble que le problème viendrait du côté du fichier créé par mencoder, parce que je partage la confiance de luchiban dans la capacité de tail de traiter des fichiers de 20 Mo.

Dernière modification par ehmicky (Le 01/09/2010, à 19:53)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#8 Le 01/09/2010, à 21:48

Hizoka

Re : [resolu] traitement d'un gros fichier texte

Si oui, pourquoi n'uploaderais-tu pas ce fichier, pour qu'on essaye de notre côté de faire un tail...

Oui c'est ce que je fais.
Mais je n'ai aucun probleme lorsque le fichier ne se modifie plus...
c'est vraiment pendant que ça ne marchait pas...

pour une raison inconnue, la commande :

pourcentage=`tail -1 fichier | sed 's/.*(// ; s/%.*// ;s/ //g'`

fonctionne alors que tail -1 seul puis des modifs en bash ne passaient pas...

du coup j'ai résolu mon problème sans trop connaitre la cause du bug...

merci à toi quand même smile


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne