117 votes

Comment tronquer les longues lignes assorties retournées par Grep ou Ack

Je veux exécuter ack ou grep sur des fichiers HTML qui ont souvent des lignes très longues. Je ne veux pas voir de longues lignes qui s'enroulent à plusieurs reprises. Mais je veux voir juste cette partie d'une longue ligne qui entoure une chaîne qui correspond à l'expression régulière. Comment puis-je obtenir cela en utilisant n'importe quelle combinaison d'outils Unix ?

55voto

Andy Lester Points 34051

Passez vos résultats par cut. J'envisage également d'ajouter un changement de --cut pour que vous puissiez dire --cut=80 et obtenir seulement 80 colonnes.

28voto

Jonah Braun Points 1404

Vous pourriez utiliser moins comme un pager pour les longues lignes ack and chop : ack --pager="less -S" Cela conserve la longue ligne mais la laisse sur une ligne au lieu d'envelopper. Pour voir plus de la ligne, faites défiler moins vers la gauche/droite avec les touches fléchées. Pour ce

faire, j'ai configuré l'alias suivant pour ack :

alias ick='ack -i --pager="less -R -S"' 

16voto

Marathon55 Points 1836

grep -oE ".\{0,10\}error.\{0,10\}" mylogfile.txt

Dans la situation inhabituelle où vous ne pouvez pas utiliser -E, utilisez des minuscules -e la place.

Explication : enter image description here

13voto

edib Points 81
cut -c 1-100

obtient des caractères de 1 à 100.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X