[Shell/Batch] "cat" à partir d'une ligne précise ...

"cat" à partir d'une ligne précise ... [Shell/Batch] - Divers - Programmation

Marsh Posté le 24-09-2009 à 15:24:35    

Bonsoir à tous !
 
Je cherche à extraire une partie seulement d'un fichier de log.
Il y a un mot clef qui est séparateur de la partie qui m'intéresse de celle qui ne m'intéresse pas.
 
Je voudrai faire un cat (ou awk ?) qui me prenne toutes les lignes d'un fichier à partir d'un mot clef séparateur (dans mon exemple "def sep" ).
 
1
2
3
#def sep
4
5
6
 
le résultat de la commande doit me donner :
4
5
6
 
(bien entendu le nombre de ligne de la partie qui ne m'intéresse pas et qui est à retirer est complètement variable), et le nombre de ligne bien plus conséquent.
 
Merci pour vos lumière.


Message édité par tabasko le 24-09-2009 à 15:25:22
Reply

Marsh Posté le 24-09-2009 à 15:24:35   

Reply

Marsh Posté le 24-09-2009 à 16:21:19    

avec un awk, je dirais qqchose comme ca:

Code :
  1. awk 'BEGIN {a=0} {if (a) {print $0} else {a=($0=="#def sep" )}}' tonfichier
 

sinon avec un grep et autre:

Code :
  1. tail -$((`wc -l tonfichier | cut -f 1 -d \ `-`grep -n -m 1 "#def sep" tonfichier | cut -f 1 -d :`)) tonfichier
 

je sais pas ce que ca peut donner avec un énorme fichier niveau perf... je te laisse tester


Message édité par pataluc le 24-09-2009 à 16:26:07
Reply

Marsh Posté le 24-09-2009 à 16:40:12    

awk 'BEGIN {a=0} {if (a) {print $0} else {a=($0=="def sep" )}}' toto.txt
awk: cmd. ligne:1: BEGIN {a=0} {if (a) {print
awk: cmd. ligne:1:                           ^ nouvelle ligne inattendue ou fin de la chaîne
 
je préférerai faire fonctionner celle ci que je comprends à peu près, comparé à l'autre :)
merci pour la piste, en attendant votre éventuelle réponse je lutte tout seul :)

Reply

Marsh Posté le 29-09-2009 à 14:44:57    

tain j'avais pas re-regardé, mais je me doutais que c'étais faisable avec un sed:

Code :
  1. sed -n '/#def sep/,$'p tonfichier

c hyper plus propre! ^^


Message édité par pataluc le 29-09-2009 à 14:45:08
Reply

Marsh Posté le 29-09-2009 à 15:52:20    

Vu ! encore merci à toi.
Je reprends ce script lorsque j'aurai fini celui avec lequel je me fight en ce moment  :jap:

Reply

Sujets relatifs:

Leave a Replay

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