GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum betrachtet Grep eine Datei als binär?

Ich habe einige Datenbank-Dumps von einem Windows-System auf meiner Box. Es sind Textdateien. Ich verwende Cygwin, um sie zu durchsuchen. Diese scheinen einfache Textdateien zu sein; Ich öffne sie mit Texteditoren wie Notepad und Wordpad und sie sehen lesbar aus. Wenn ich jedoch grep auf ihnen ausführe, wird es sagen binary file foo.txt matches .

Mir ist aufgefallen, dass die Dateien ASCII NUL enthalten Zeichen, von denen ich glaube, dass sie Artefakte aus dem Datenbank-Dump sind.

Was bringt grep also dazu, diese Dateien als binär zu betrachten? Die NUL Charakter? Gibt es ein Flag im Dateisystem? Was muss ich ändern, damit grep mir die Zeilenübereinstimmungen anzeigt?

Akzeptierte Antwort:

Wenn ein NUL vorhanden ist Zeichen irgendwo in der Datei, wird grep es als Binärdatei betrachten.

Es könnte eine Problemumgehung wie diese cat-Datei | geben tr -d '

Linux
  1. Was ist die Inode-Nummer unter Linux?

  2. grep eine große Liste gegen eine große Datei

  3. Wie grep \n in Datei

  4. Was ist eine .so-Datei?

  5. Strace in Datei umleiten

Was ist umask unter Linux?

Lesen von Grep-Mustern aus einer Datei?

Was ist eine .bashrc-Datei unter Linux?

Linux grep-Befehl

Was sind die Unterschiede zwischen grep, awk und sed?

Was ist eine .sh-Datei?