GNU/Linux >> Tutoriels Linux >  >> Linux

Afficher tout le fichier jusqu'au match ?

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

Linux
  1. Comment stocker la sortie de SHOW PROCESSLIST dans un fichier MySQL ?

  2. La fête ?

  3. Est-ce que Mv Atomic est sur le F?

  4. Sed :Supprimer toutes les occurrences d'une chaîne, sauf la première ?

  5. Enregistrer toutes les sorties du terminal dans un fichier ?

Comment insérer du texte avant la première ligne d'un fichier ?

Linux - Comment afficher le type de système de fichiers via le terminal ??

Quelles sont les différences entre grep, awk et sed ?

Comment utiliser sed pour supprimer les n dernières lignes d'un fichier

Chat récursif tous les fichiers en un seul fichier

Comment insérer du texte à la 1ère ligne d'un fichier à l'aide de sed ?