8 votes

Grep peut-il mettre en évidence le texte correspondant sans masquer le contenu du fichier ?

J'utilise fréquemment grep Les options de la ligne de commande contextuelle ( -A , -B y -C ), mais il m'arrive de vouloir visualiser l'ensemble du fichier avec les expressions correspondantes en surbrillance. Pour ce faire, je spécifie simplement -C 999999999 mais cela semble stupide.

Existe-t-il une option dans le logiciel OS X intégré ? grep qui me permettra de profiter facilement des fonctions de correspondance et de coloration de grep, sans cacher le contenu des fichiers ?

16voto

Lauri Koskela Points 286

Je ne pense pas qu'il y ait d'option simple dans grep, mais cela semble fonctionner correctement. A partir de https://stackoverflow.com/a/981831

grep --color -E "pattern|$" file

En |$ à la fin de l'expression régulière permet à grep de trouver le motif OU la fin des lignes. Il ne peut cependant pas les mettre en évidence, de sorte que seul le motif est coloré.

6voto

Schwern Points 293

En supposant que vous souhaitiez lire le fichier vous-même, avec les éléments mis en évidence, moins est le meilleur outil pour ce travail. less yourfile , type / , votre modèle et appuyez sur la touche retour. n passe au match suivant et space à la page suivante.

Alternativement, ack a une --passthru Le mode qui fait ce que vous voulez. ack est tellement utile qu'il vaut la peine d'y jeter un coup d'œil.

2voto

Paramètres -C à un nombre entier négatif semble être équivalent à un nombre arbitrairement grand.

grep something --color -C -1 *.txt

Mais comme dans le cas de quelque chose comme -C 9999999 Si le fichier a des correspondances multiples, certaines lignes peuvent être imprimées plusieurs fois.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X