Dans un fichier texte du genre :
-- Debut
-- Texte
Bonjour
Debian
-- Info 1
Partie 1
-- Texte
Test
Avec
Awk
-- Info 2
Partie 2
-- Texte
Sélection
Plusieurs
lignes
-- Info 3
Partie 3
-- Fin
Je veux les deux premières lignes à partir de “-- Texte”, je fais :
$ awk '/-- Texte/ { print;getline;print }' monfichiertexte
Mais si je veux les ‘x’ lignes suivantes ?
Je ne vais pas faire autant de getline;print qu’il y a de lignes, si ?
Avec x=4 (le 3 viens de 4-1 car on fait un premier print avant la boucle)
Avec x=4 (le 3 viens de 4-1 car on fait un premier print avant la boucle)
Coche verte Monsieur le modérateur
Knucky
Février 21, 2016, 2:04
5
Salut,
Aller, une version un peu plus ‘fun’
awk '/-- Texte/ {n=4} n > 0 {print; n--}'
Un poil plus court awk '/-- Texte/{n=3}n-->0' ton_fichier
Avec grep sinon:grep -A2 -- '-- Texte' ton_fichier
Bonne idée GREP, je n’avais même pas imaginé qu’il puisse être plus pratique.
Je me sers de cette option (et de -B et -C) quotidiennement et je n’y ai pas pensé, pas mal
Juste une petite astuce pour que mon message ne soit pas inutile. -F c’est cool c’est plus rapide