/ / grep only-matching non funziona come previsto - bash, grep

grep only-matching non funziona come previsto - bash, grep

Stavo provando a fare una semplice grep - solo-matching su "height = xxx", e il risultato è abbastanza strano come mostrato sullo screenshot.

Qualcuno sa di cosa si tratta?

inserisci la descrizione dell'immagine qui

GNU bash, versione 3.2.57 (1) -release (x86_64-apple-darwin17) Copyright (C) 2007 Free Software Foundation, Inc.

risposte:

1 per risposta № 1

Probabilmente attraverso alcuni alias, il tuo sistema impone grep uscita per essere a colori. Non farlo.

Sul mio sistema, il codice produce l'output corretto:

$ echo "$value" | grep -Eo "height=[0-9]+" | grep -Eo "[0-9]+"
532

Se, tuttavia, forzo il colore, allora vedo l'output che vedi:

$ echo "$value" | grep -Eo --color=always "height=[0-9]+" | grep -Eo "[0-9]+"
01
31
532

Non forzare il colore È normale che uno o più file di inizializzazione bash impostino gli alias per rendere più piacevole l'uso interattivo dei comandi. --color=always con --color=auto.