Bei Verwendung grep
unter Linux enthält das Ergebnis häufig viele "XXX-Übereinstimmungen für Binärdateien", die mir egal sind. Wie kann man diesen Teil der Ergebnisse unterdrücken oder Binärdateien in grep ausschließen?
Bei Verwendung grep
unter Linux enthält das Ergebnis häufig viele "XXX-Übereinstimmungen für Binärdateien", die mir egal sind. Wie kann man diesen Teil der Ergebnisse unterdrücken oder Binärdateien in grep ausschließen?
Antworten:
Es gibt drei Optionen, die Sie verwenden können. -I
ist, Binärdateien in grep auszuschließen. Andere sind für Zeilennummern und Dateinamen.
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
Dies könnte also eine Möglichkeit sein, grep auszuführen:
grep -InH your-word *
-Irn
wo r
für rekursiv steht, um in alle Ordner zu schauen. H
ist hier exsessiv
-n
Flag weist grep an, die Zeilennummern der Dateien zu melden, in denen eine Übereinstimmung gefunden wurde. "1-basiert" bedeutet, dass die Zeilenzählung eher bei Eins als bei Null beginnt, wie dies bei der Programmierung häufig der Fall ist. Also, wenn die erste Zeile der Datei mit dem Namen example.txt
ist Hello, world
, ist die zweite Zeile Hello cat
und die dritte Zeile cats are cool
, dann die Suche nach „Katze“ über grep -n cat example.txt
, würden Sie bekommen example.txt:2: Hello cat
und example.txt:3: cats are cool
.
Dies ist eine alte Frage, die beantwortet wurde, aber ich dachte, ich würde die Option --binary-files = text hier für jeden einfügen, der sie verwenden möchte. Die Option -I ignoriert die Binärdatei. Wenn Sie jedoch möchten, dass grep die Binärdatei als Textdatei behandelt, verwenden Sie --binary-files = text wie folgt:
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$