ne conserver que la dernière ligne d' un fichier texte

ne conserver que la dernière ligne d' un fichier texte - Shell/Batch - Programmation

Marsh Posté le 11-04-2009 à 10:41:23    

Bonjour,
 
comment ne conserver que la dernière ligne d' un fichier TXT grâce à un batch sous windows ?
 
exemple : fichier resultat.txt
Operator0002.log:624783 30.Mar 08:16:21.966  --MParamDialog: PARAMETER changed ,'Conv. corr. handling', id=0xc426, value=1  
Operator0002.log:624805 30.Mar 08:26:41.325  --MParamDialog: PARAMETER changed ,'Conv. corr. handling', id=0xc426, value=2  
Operator0002.log:624806 30.Mar 08:26:45.060  --MParamDialog: PARAMETER changed ,'Conv. corr. handling', id=0xc426, value=1  
Operator0002.log:625144 30.Mar 08:50:07.716  --MParamDialog: PARAMETER changed ,'Conv. corr. handling', id=0xc426, value=2  
Operator0002.log:625145 30.Mar 08:50:10.888  --MParamDialog: PARAMETER changed ,'Conv. corr. handling', id=0xc426, value=1  
Operator0002.log:625260 30.Mar 08:58:50.669  --MParamDialog: PARAMETER changed ,'Conv. corr. handling', id=0xc426, value=2  
 
fichier resultat2.txt ( après suppression des lignes )
Operator0002.log:625260 30.Mar 08:58:50.669  --MParamDialog: PARAMETER changed ,'Conv. corr. handling', id=0xc426, value=2
encore mieux serait de ne garder que le dernier caractère ( c' est un chiffre ) dans le nouveau fichier resultat2.txt
2
 
Merci bcp pour vôtre aide
Philou
 
 
Merci
 

Reply

Marsh Posté le 11-04-2009 à 10:41:23   

Reply

Marsh Posté le 11-04-2009 à 13:23:16    

Code :
  1. FOR /F "tokens=3 delims==" %%A IN (resultat.txt) DO ECHO %%A > coucou.txt

Message cité 1 fois
Message édité par eZula le 11-04-2009 à 13:23:46
Reply

Marsh Posté le 11-04-2009 à 18:55:19    

Super, ça fonctionne parfaitement.
Ma solution à moi était un peu tordu, donc, chapeau bas.
Merci eZula, grâce à toi, je vais pouvoir enfin comprendre
les subtilités de tockens et de delims.
 
Là, je vais poster une autre question car j'aimerais
pouvoir lancer une boite de dialogue genre Alert.
Je pense qu'il va me falloir utiliser VBA pour cette
boite de dialogue, mais j'aimerais commander l' ouverture
de cette boite de dialogue grâce à mon batch.
Philou

Reply

Marsh Posté le 02-02-2010 à 00:25:14    

eZula a écrit :

Code :
  1. FOR /F "tokens=3 delims==" %%A IN (resultat.txt) DO ECHO %%A > coucou.txt



 
Bonjour,
 
eZula es-tu sûre de ta ligne de commande? J'ai une erreur me disant "%%A était inattendu".
 
J'ai un peu le même problème que Philou seulement le contenu de mon fichier est le suivant:
 
frame=     2 q= 2.0 f_size=  12910 s_size=       13kB time= 0.080 br=  2582.0kbits/s avg_br=  1291.0kbits/s type= P
frame=     3 q= 2.0 f_size=   6787 s_size=       19kB time= 0.120 br=  1357.4kbits/s avg_br=  1313.1kbits/s type= P
frame=     4 q= 2.0 f_size=   2476 s_size=       22kB time= 0.160 br=   495.2kbits/s avg_br=  1108.7kbits/s type= P
 
Et je souhaiterai récupérer la valeur de "time" de la dernière ligne du fichier ici 0,160. Quelle commande puis-je utiliser?
 
Merci d'avance pour votre aide.

Reply

Marsh Posté le 02-02-2010 à 09:44:40    

Salut,
 

Citation :

eZula es-tu sûr de ta ligne de commande? J'ai une erreur me disant "%%A était inattendu".


 
un % dans le terminal DOS, 2 % dans un batch ;)  
 
Voilà une possibilité pour ton problème
 

Citation :

FOR /F "TOKENS=6 DELIMS==" %%A IN (fichier.txt) DO FOR /F "DELIMS= " %%B IN ('ECHO %%A') DO ECHO %%B>>resultat.txt

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed