GNU/Linux >> Linux Esercitazione >  >> Linux

Cosa potrebbe far sì che il comando file in Linux riporti un file di testo come dati binari?

Vim si sforza molto di dare un senso a tutto ciò che gli lanci senza lamentarsi. Questo lo rende uno strumento relativamente scarso da usare per diagnosticare file 's output.

L'avviso "[convertito]" di Vim indica che c'era qualcosa nel file che vim non si aspetterebbe di vedere nella codifica del testo suggerita dalle impostazioni locali (LANG ecc.).

Altri hanno già suggerito

  • cat -v
  • xxd

Potresti provare a cercare caratteri non ASCII.

  • grep -P '[\x7f-\xff]' filename

L'altra possibilità sono terminazioni di riga non standard per la piattaforma (ad es. CRLF o CR) ma mi aspetto file per far fronte a ciò e segnalare "file di testo DOS" o simili.


Se esegui file -D filename , file visualizza le informazioni di debug, inclusi i test che esegue. Verso la fine, mostrerà quale test ha avuto successo nel determinare il tipo di file.

Per un normale file di testo, ha questo aspetto:

[31> 0 regex,=^package[ \t]+[0-9A-Za-z_:]+ *;,""]
1 == 0 = 0
ascmagic 1
filename.txt: ISO-8859 text, with CRLF line terminators

Questo ti dirà cosa ha trovato per determinare che è quel tipo mime.


Ho trovato il problema utilizzando la ricerca binaria per individuare le linee problematiche.

head -n {1/2 line count} file.cpp > a.txt
tail -n {1/2 line count} file.cpp > b.txt

Esecuzione di file contro ciascuna metà, e ripetendo il processo, mi ha aiutato a individuare la linea incriminata. Ho trovato un Controllo +P (^P ) carattere incorporato in esso. Rimuoverlo ha risolto il problema. Scriverò io stesso uno script Perl per cercare questi caratteri (e altri estesi) in futuro.

Un grande grazie a tutti coloro che hanno fornito una risposta per tutti i suggerimenti!


Linux
  1. Come utilizzare il comando Tar in Linux

  2. 4 modi per creare un file di testo nel terminale Linux

  3. Esempi essenziali del comando file in Linux

  4. 9 esempi utili del comando Split in Linux

  5. Qual è lo scopo del file .bashrc in Linux

Cos'è il comando Linux Watch + Esempi

Visualizza il contenuto di un file nella riga di comando di Linux

Come aggiungere testo all'inizio del file in Linux

Qual è il comando kill in Linux?

3 modi per creare rapidamente un file di testo tramite il terminale Linux

qual è il comando più affidabile per trovare la dimensione effettiva di un file linux