Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

4 réponses
Avatar
laplaige.dominique
Bonjour,

Je dispose de plusieurs tr=E9s gros fichiers format=E9s ainsi :

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


Je cherche =E0 r=E9cup=E9rer le mot entre crochet, situ=E9 sur la seconde
ligne, ici :

listing.jdt


Merci d'avance.

4 réponses

Avatar
Marc Boyer
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)

Avatar
Matthieu Moy
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

Avatar
Jacques L'helgoualc'h
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

Avatar
Marc Boyer
Le 12-03-2007, Jacques L'helgoualc'h <lhh+ a écrit :
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)