grep --before-context 5
affiche 5 lignes avant le match.
Je veux tout montrer avant le match.
Faire grep --before-context 99999999
ça marcherait mais ce n'est pas très… professionnel.
Comment afficher tout le fichier jusqu'au match ?
Réponse acceptée :
Sed est meilleur pour ça.
Faites simplement :
sed '/PATTERN/q' FILE
Cela fonctionne comme ceci :
Pour chaque ligne, on regarde si elle correspond à /PATTERN
:
- si oui, nous l'imprimons et quittons
- sinon, nous l'imprimons
C'est la solution la plus efficace, car dès qu'il voit PATTERN
, ça s'arrête. Sans q
, sed continuerait à lire le reste du fichier et ne ferait rien avec. Pour les gros fichiers, cela peut faire la différence.
Cette astuce peut également être utilisée pour émuler head
:
sed 10q FILE