Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1553 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1926403
tabasko
Posté le 24-09-2009 à 15:24:35  profilanswer
 

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
mood
Publicité
Posté le 24-09-2009 à 15:24:35  profilanswer
 

n°1926432
pataluc
Posté le 24-09-2009 à 16:21:19  profilanswer
 

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
n°1926438
tabasko
Posté le 24-09-2009 à 16:40:12  profilanswer
 

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 :)

n°1927615
pataluc
Posté le 29-09-2009 à 14:44:57  profilanswer
 

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
n°1927659
tabasko
Posté le 29-09-2009 à 15:52:20  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

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

 

Sujets relatifs
Batch if else[PHP/Excel] crée une nouvelle feuille EXCEL a partir de PHP
[Résolu tout seul] [GTK] GTK Cell Renderer ne dessine qu'une ligne ?[Shell] If dans awk et histoire de NR
script shellUpdate d'une colonne a partir d'une autre table access
Recherche d'un caractère précis Batch/DOS[RESOLU]Arrondi à partir d'une chaine de caractère
Generer aleatoirement un caractère à partir d'un tableauModification du fichier text, en position XX de la ligne ZZ
Plus de sujets relatifs à : [Shell/Batch] "cat" à partir d'une ligne précise ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR