"Grep" che evidenzia al posto del filtro [chiuso]

-1

Mi chiedevo se c'è un programma nel set di strumenti comuni di unix come grep che invece di filtrare le righe che contengono una stringa, semplicemente emette lo stesso input ma evidenzia o colorerà la stringa selezionata.

Stavo pensando di farlo da solo (dovrebbe essere abbastanza semplice), ma forse esiste già come comando unix.

Ho intenzione di usarlo per monitorare i log, quindi vorrei fare qualcosa del genere:

tail -f logfile.log | highlight "error"

Di solito quando sto monitorando i log ho bisogno di trovare una stringa particolare, ma ho anche bisogno di sapere cosa è scritto prima e dopo la stringa, quindi il filtraggio a volte non è sufficiente.

Esiste qualcosa del genere?

Grazie

    
posta ordago 05.12.2014 - 08:09
fonte

1 risposta

1

Vorrei utilizzare un semplice comando sostitutivo sed con codici di escape ANSI messi prima e dopo la corrispondenza RE.

tail -f logfile.log | sed 's/\(error\)/^[[42m^[[0m/g'

dove ^[ è un carattere ESC che è possibile ottenere premendo ctrl -V ESC

Se hai bisogno di un comando highlight , puoi definirlo come una funzione di shell:

highlight() { sed 's/'"$1"'\)/^[[42m^[[0m/g' ; }
    
risposta data 05.12.2014 - 09:19
fonte

Leggi altre domande sui tag