GNU/Linux >> Znalost Linux >  >> Linux

Proč Grep považuje soubor za binární?

Mám v krabici nějaké výpisy databáze ze systému Windows. Jsou to textové soubory. K jejich procházení používám cygwin. Zdá se, že jde o prosté textové soubory; Otevírám je pomocí textových editorů, jako je poznámkový blok a wordpad, a vypadají čitelně. Když však na nich spustím grep, bude to říkat binary file foo.txt matches .

Všiml jsem si, že soubory obsahují nějaké ascii NUL znaky, o kterých se domnívám, že jsou artefakty z výpisu databáze.

Proč tedy grep považuje tyto soubory za binární? NUL charakter? Je na souborovém systému příznak? Co musím změnit, aby mi grep zobrazoval shody řádků?

Přijatá odpověď:

Pokud existuje NUL znak kdekoli v souboru, grep jej bude považovat za binární soubor.

Může existovat řešení, jako je tento cat file | tr -d '

Linux
  1. Co je soubor .so.2?

  2. Jak potlačit výsledky shody binárních souborů v grep

  3. Co je soubor .so?

  1. Jak odstranit „binární data“ z textového souboru (např. Bash_history)?

  2. Co se počítá jako úprava nebo změna souboru?

  3. Co by mohlo způsobit, že příkaz file v Linuxu nahlásí textový soubor jako binární data?

  1. Co dělá Exec 3?

  2. Jak 'grep' nepřetržitý proud?

  3. grep velký seznam proti velkému souboru