GNU/Linux >> Linux Esercitazione >  >> Linux

Come sopprimere i risultati della corrispondenza dei file binari in grep

Questa è una vecchia domanda e ha avuto risposta, ma ho pensato di mettere qui l'opzione --binary-files=text per chiunque voglia usarla. L'opzione -I ignora il file binario ma se vuoi che grep tratti il ​​file binario come un file di testo usa --binary-files=text in questo modo:

bash$ grep -i reset mediaLog*
Binary file mediaLog_dc1.txt matches
bash$ grep --binary-files=text -i reset mediaLog*
mediaLog_dc1.txt:2016-06-29 15:46:02,470 - Media [uploadChunk  ,315] - ERROR - ('Connection aborted.', error(104, 'Connection reset by peer'))
mediaLog_dc1.txt:ConnectionError: ('Connection aborted.', error(104, 'Connection reset by peer'))
bash$

Ci sono tre opzioni che puoi usare. -I è escludere i file binari in grep. Altri sono per numeri di riga e nomi di file.

grep -I -n -H 


-I -- process a binary file as if it did not contain matching data; 
-n -- prefix each line of output with the 1-based line number within its input file
-H -- print the file name for each match

Quindi questo potrebbe essere un modo per eseguire grep:

grep -InH your-word *

Linux
  1. Come faccio a grep in modo ricorsivo?

  2. Come distinguere il binario dai file di testo in Linux

  3. Come eseguire il "grep" di un flusso continuo?

  4. Come eseguire il grep per i contenuti dopo il modello?

  5. Come recuperare un file rimosso sotto Linux?

Come trovare una stringa in un file su Linux

Come rimuovere i "dati binari" da un file di testo (ad es. Bash_history)?

Cosa fa considerare Grep un file come binario?

Come posso cercare uno schema multilinea in un file?

Come modificare file binari su sistemi Unix

Come grep per unicode � in uno script bash