2 votos

'grep --color' sólo muestra un número limitado de coincidencias y duplica las líneas de entrada

Tengo una cadena larga en una línea y quiero resaltar todas las ocurrencias de un carácter/subcadena usando grep --color en la línea de comandos. Sin embargo, esto sólo resalta las coincidencias en "trozos" de 32. Si hay más de 32 coincidencias en una línea, sólo se resaltan las primeras 32, la cadena de entrada se repite y el siguiente trozo de 32 coincidencias se resalta en la(s) siguiente(s) línea(s). Por ejemplo (sustituyendo "rojo" por "negrita"):

for i in {1..4}; do echo -n 1234567890; done | grep --color "[0123456789]"

12345678901234567890123456789012 34567890

12345678901234567890123456789012 34567890

¿Cómo puedo obtener todas las coincidencias en una línea sin duplicar las líneas de entrada?

Estoy usando Darwin en Big Sur y he probado bash y zsh. La duplicación no es un problema si no uso el --color o utilizar -o . Todo funciona como se espera en Linux (Fedora 7.3).

1voto

Esto parece ser un problema con BSD grep que es parte de MacOS. Funciona si instalas GNU grep a través de Homebrew (usa ggrep entonces).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X