[BASH - Grep] Tentative pour épurer le parsing d'un listing
Bonjour,
je suis en train d'essayer de parser ce genre d'information, extraite d'un fichier truetype :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| NAME table (at 392)
format=0
nrecords=21
taboff=258
platform=0 plat spec encoding=0 language=0 name=0 Copyright
strlen=120 stroff=60 ^@�^@ ^@2^@0^@0^@0^@ ^@J^@e^@f^@f^@ ^@L^@e^@e^@ ^@<^@h^@t^@t^@p^@:^@/^@/^@w^@w^@w^@.^@g^@a^@t^@e^@.^@n^@e^@t^@/^@~^@s^@h^@i^@p^@b^@r^@k^@/^@t^@y^@p^@o^@g^@r^@a^@f^@.^@h^@t^@m^@l^@>
platform=0 plat spec encoding=0 language=0 name=1 Family
strlen=22 stroff=191 ^@J^@S^@L^@ ^@A^@n^@c^@i^@e^@n^@t
platform=0 plat spec encoding=0 language=0 name=2 Subfamily
strlen=12 stroff=219 ^@I^@t^@a^@l^@i^@c
platform=0 plat spec encoding=0 language=0 name=3 UniqueID
strlen=46 stroff=254 ^@A^@l^@t^@s^@:^@J^@S^@L^@ ^@A^@n^@c^@i^@e^@n^@t^@ ^@I^@t^@a^@l^@i^@c
platform=0 plat spec encoding=0 language=0 name=4 FullName
strlen=36 stroff=318 ^@J^@S^@L^@ ^@A^@n^@c^@i^@e^@n^@t^@ ^@I^@t^@a^@l^@i^@c
platform=0 plat spec encoding=0 language=0 name=5 Version
strlen=56 stroff=382 ^@3^@.^@0^@ ^@M^@o^@n^@d^@a^@y^@,^@ ^@1^@1^@ ^@D^@e^@c^@e^@m^@b^@e^@r^@ ^@2^@0^@0^@0
platform=0 plat spec encoding=0 language=0 name=6 Postscript
strlen=34 stroff=455 ^@J^@S^@L^@-^@A^@n^@c^@i^@e^@n^@t^@I^@t^@a^@l^@i^@c
platform=1 plat spec encoding=0 language=0 name=0 Copyright
strlen=60 stroff=0 � 2000 Jeff Lee <http://www.gate.net/~shipbrk/typograf.html>
platform=1 plat spec encoding=0 language=0 name=1 Family
strlen=11 stroff=180 JSL Ancient
platform=1 plat spec encoding=0 language=0 name=2 Subfamily
strlen=6 stroff=213 Italic
platform=1 plat spec encoding=0 language=0 name=3 UniqueID
strlen=23 stroff=231 Alts:JSL Ancient Italic
platform=1 plat spec encoding=0 language=0 name=4 FullName
strlen=18 stroff=300 JSL Ancient Italic
platform=1 plat spec encoding=0 language=0 name=5 Version
strlen=28 stroff=354 3.0 Monday, 11 December 2000
platform=1 plat spec encoding=0 language=0 name=6 Postscript
strlen=17 stroff=438 JSL-AncientItalic
platform=3 plat spec encoding=0 language=409 name=0 Copyright
... |
et avec mes petits neurones épuisés par cette chaleur de fou, j'arrive à ça
Code:
1 2 3 4 5 6
| strlen=11 stroff=180 JSL Ancient
strlen=6 stroff=213 Italic
strlen=23 stroff=231 Alts:JSL Ancient Italic
strlen=18 stroff=300 JSL Ancient Italic
strlen=28 stroff=354 3.0 Monday, 11 December 2000
strlen=17 stroff=438 JSL-AncientItalic |
en utilisant cat texte | grep -v Copyright | grep platform=1 -A 1 | grep -v Version -A 1 | grep strlen et comme on peut le voir, il reste une ligne (l'avant-dernière) avec une date qui ne m'intéresse pas et pas moyen de l'enlever, :aie:
le grep -v Version enlève bien la ligne Version mais -A 1 ne doit pas être la bonne formule magique pour ôter la ligne suivante...
Note : la première entrée platform=1 incorpore un point d'interrogation en rendu inversé qui doit éliminer cette ligne sans que je n'aie rien à faire à part préciser -v Copyright, c'est cool.
Une idée ?
Merci d'avance,
Linux/Debian 11.9 64bits