Connect with us

Linux

Come vedere l’output di grep a colori con la funzione di evidenziazione


TIl comando grep è lo strumento di fatto per la ricerca di file di testo. Tuttavia, quando ci sono troppe corrispondenze, trovare il testo richiesto nei risultati della ricerca può essere difficile. Quindi grep arriva con --color="auto" opzione. Circonda la stringa corrispondente con il colore, risultando così in un output migliorato. Ora sai che grep può evidenziare con il colore il testo o le parole corrispondenti nel suo output. Tuttavia, per impostazione predefinita, tale opzione è disattivata. Quindi vediamo come colorare grep per impostazione predefinita per visualizzare l’intero file con le corrispondenze evidenziate su sistemi Linux o Unix-like.

grep con sintassi di output a colori

La sintassi è la seguente:

grep --color 'string' /path/to/file
fgrep --color foo file
egrep --color 'foo|bar' input
grep --color='auto' [options] patterns file

Ad esempio, cerca una parola chiamata vivek in /etc/passwd usando grep colorato come segue:
grep --color="auto" vivek /etc/passwd
Circonda il testo corrispondente come segue:

vivek:x:1000:1000:Vivek Gite:/home/vivek:/usr/bin/bash

Trovare una stringa con grep con l’evidenziazione del colore attivata

Passa il --colore opzione al comando grep come segue:
$ grep --color="auto" -i error /var/log/messages
Produzione:


............
...
Oct  9 16:12:14 vivek-desktop kernel: [   11.555442] bt878: probe of 0000:05:00.1 failed with error -22
Oct 10 17:35:28 vivek-desktop kernel: [   10.564710] bt878: probe of 0000:05:00.1 failed with error -22
Oct 11 10:15:34 vivek-desktop kernel: [   12.187477] bt878: probe of 0000:05:00.1 failed with error -22
Oct 11 14:29:56 vivek-desktop kernel: [   11.135309] bt878: probe of 0000:05:00.1 failed with error -22
..........
...
....

Ora tutto il testo abbinato viene visualizzato utilizzando il colore rosso. Il --colore opzione per le corrispondenze nell’input in colore rosso per impostazione predefinita. Il colore viene aggiunto tramite sequenze di escape ANSI. Per cambiare il colore usa la variabile d’ambiente GREP_COLOR. Di seguito imposterà lo sfondo al rosso e il primo piano al bianco:
$ export GREP_COLOR='1;37;41'
$ egrep --color=auto -i '(error|fatal|warn|drop)' /var/log/messages


Ti consiglio di inserire quanto segue nel tuo file ~/.bash_profile ~/.bashrc:
$ vi ~/.bash_profile
Aggiungi il seguente alias:
export GREP_COLOR='1;37;41'
alias grep='grep --color=auto'

Salva e chiudi il file. Si prega di notare che --colore L’opzione funziona con molte utilità di testo GNU, quindi sentiti libero di usare lo stesso.

Grep colorato per visualizzare l’intero file con le corrispondenze evidenziate

Ci sono tre opzioni che possiamo passare al --colore[=WHEN] o --colore[=WHEN]. QUANDO può essere:

Guide solo per i sostenitori di Patreon ????

  • Nessuna pubblicità e tracciamento
  • Guide approfondite per sviluppatori e amministratori di sistema su Opensourceflare✨
  • Unisciti al mio Patreon per supportare i creatori di contenuti indipendenti e iniziare a leggere le ultime guide:

Aderire Patreon ?

  1. --colore=mai : Disattiva colorazione
  2. --colore=sempre : Cerca sempre di visualizzare le stringhe/parole corrispondenti a colori sul terminale
  3. --colore=auto : Roba automatica

Trova facilmente le stringhe con la funzione di evidenziazione del colore grep in ogni momento

Devi impostare o creare un alias Bash permanente su Linux/Unix come segue nel tuo ~/.bashrc:

alias grep='grep --color=always'
alias egrep='egrep --color=always'
alias fgrep='fgrep --color=always'
# optional 
alias xzegrep='xzegrep --color=auto'
alias xzfgrep='xzfgrep --color=auto'
alias xzgrep='xzgrep --color=auto'
alias zegrep='zegrep --color=auto'
alias zfgrep='zfgrep --color=auto'
alias zgrep='zgrep --color=auto'

Come vedere l’output di grep a colori con la funzione di evidenziazione con altri comandi

Ecco un esempio in cui --colore=sempre fa sì che i caratteri di controllo “grezzi” vengano visualizzati utilizzando il comando less:

grep --color=always foo /path/to/input | less -r
grep --color=always dns /etc/passwd | less -r
# the following will not work as we failed to pass the always option
grep --color dns /etc/passwd | less -r


Funzionerà anche con il comando more:
grep --color dns /etc/passwd | more

Riassumendo

Il --colore L’opzione circonda le stringhe corrispondenti (non vuote), le righe corrispondenti, le righe di contesto, i nomi di file, i numeri di riga, gli offset di byte e i separatori (per i campi e i gruppi di righe di contesto) con sequenze di escape per visualizzarli a colori sul terminale. I colori sono definiti dalla variabile d’ambiente GREP_COLORS. La variabile di ambiente obsoleta GREP_COLOR è ancora supportata, ma la sua impostazione non ha priorità. Vedere la pagina man del comando grep legando il seguente comando man:
man grep
man egrep


ANNUNCIO



Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!

Click to comment

Leave a Reply

Esegui l'accesso per Commentare.

Di tendenza

Close Popup
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Close Popup
Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.

Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati nei nostri sistemi.

Cookie tecnici
Per utilizzare questo sito web usiamo i seguenti cookie tecnici necessari:
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • swpm_session

Google Adsense
Usiamo la pubblicità di Google solo per mantenere attivi i nostro sito. Con ip anonimizzati.

Rifiuta tutti i Servizi
Save
Accetta tutti i Servizi