extraire un mot d'un tres gros fichier en bash ?

Le
laplaige.dominique
Bonjour,

Je dispose de plusieurs trés gros fichiers formatés ainsi :

-- début du fichier -
%!
(listing.jdt) STARTLM
MEDECIN = 12313545643213
IMAT = 142498923423423423
MEDECIN = 12313545643213
IMAT = 142423423423423436
MEDECIN = 12313545643269
IMAT = 142423423423423423
etc .


Je cherche à récupérer le mot entre crochet, situé sur la seconde
ligne, ici :

listing.jdt


Merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Marc Boyer
Le #729320
Le 12-03-2007, a écrit :

Je dispose de plusieurs trés gros fichiers formatés ainsi :
----------- début du fichier ----------------
%!
(listing.jdt) STARTLM
MEDECIN = 12313545643213
IMAT = 142498923423423423
MEDECIN = 12313545643213
IMAT = 142423423423423436
MEDECIN = 12313545643269
IMAT = 142423423423423423
etc ....


Je cherche à récupérer le mot entre crochet, situé sur la seconde
ligne, ici :

listing.jdt


i% head -n 2 toto | tail -n 1 | sed "s/^[(]([^)]*).*/1/"

Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)

Matthieu Moy
Le #729319
writes:

Bonjour,

Je dispose de plusieurs trés gros fichiers formatés ainsi :

----------- début du fichier ----------------
%!
(listing.jdt) STARTLM


Si tu peux garantir que le mot cherché est toujours sur une ligne de
type ^([^)]*) .*$, et que la réciproque est vraie aussi, un simple
grep + sed devrait faire l'affaire.

Quand tu dis « très gros », c'est quel ordre de grandeur de taille ?

--
Matthieu

Jacques L'helgoualc'h
Le #729317
Le 12-03-2007, a écrit :
Bonjour,


bonjour,

Je dispose de plusieurs trés gros fichiers formatés ainsi :

%!
(listing.jdt) STARTLM
MEDECIN = 12313545643213
[...]

Je cherche à récupérer le mot entre crochet, situé sur la seconde
ligne, ici :

listing.jdt


N'écoute pas les mécréants qui prétendent que Sed a besoin de béquilles !

$ echo '%!
(listing.jdt) STARTLM
MEDECIN = 12313545643213
IMAT = 142498923423423423
MEDECIN = 12313545643213
IMAT = 142423423423423436
MEDECIN = 12313545643269
IMAT = 142423423423423423
' | sed '1d;s/^((.*)) STARTLM$/1/;q'
listing.jdt

(GNU Sed -- en supposant que la ligne 2 a toujours cette forme).

Merci d'avance.


de rien,
--
Jacques L'helgoualc'h

Marc Boyer
Le #729316
Le 12-03-2007, Jacques L'helgoualc'h
N'écoute pas les mécréants qui prétendent que Sed a besoin de béquilles !

$ echo '%!
(listing.jdt) STARTLM
MEDECIN = 12313545643213
IMAT = 142498923423423423
MEDECIN = 12313545643213
IMAT = 142423423423423436
MEDECIN = 12313545643269
IMAT = 142423423423423423
' | sed '1d;s/^((.*)) STARTLM$/1/;q'
listing.jdt


Ah, le ;, c'est vrai que je l'oublie souvent.

Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)

Publicité
Poster une réponse
Anonyme