GNU/Linux >> Belajar Linux >  >> Linux

Apa yang menyebabkan perintah file di Linux melaporkan file teks sebagai data biner?

Vim berusaha sangat keras untuk memahami apa pun yang Anda lakukan tanpa mengeluh. Ini menjadikannya alat yang relatif buruk untuk digunakan untuk mendiagnosis file keluaran.

Pemberitahuan "[converted]" Vim menunjukkan ada sesuatu dalam file yang vim tidak harapkan untuk dilihat dalam pengkodean teks yang disarankan oleh pengaturan lokal Anda (LANG dll).

Yang lain sudah menyarankan

  • cat -v
  • xxd

Anda dapat mencoba mengambil karakter non-ASCII.

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

Kemungkinan lainnya adalah akhiran baris non-standar untuk platform (yaitu CRLF atau CR) tetapi saya berharap file untuk mengatasinya dan laporkan "file teks DOS" atau yang serupa.


Jika Anda menjalankan file -D filename , file menampilkan informasi debug, termasuk pengujian yang dilakukannya. Menjelang akhir, ini akan menunjukkan tes apa yang berhasil menentukan jenis file.

Untuk file teks biasa, tampilannya seperti ini:

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

Ini akan memberi tahu Anda apa yang ditemukan untuk menentukan jenis pantomim itu.


Saya menemukan masalah menggunakan pencarian biner untuk menemukan baris yang bermasalah.

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

Menjalankan file terhadap setiap bagian, dan mengulangi prosesnya, membantu saya menemukan garis yang menyinggung. Saya menemukan Kontrol +P (^P ) karakter yang tertanam di dalamnya. Menghapusnya memecahkan masalah. Saya akan menulis sendiri skrip Perl untuk mencari karakter ini (dan perluasan lainnya) di masa mendatang.

Terima kasih banyak untuk semua orang yang memberikan jawaban untuk semua tips!


Linux
  1. Cara Menggunakan Perintah Tar di Linux

  2. Contoh Penting dari Perintah File di Linux

  3. 9 Contoh Perintah Split yang Berguna di Linux

  1. 4 Cara Membuat File Teks di Terminal Linux

  2. Apa tujuan dari file .bashrc di Linux?

  3. Apa perintah untuk menyalin, membaca, dan menghapus file di linux

  1. Buat file dengan menggunakan baris perintah di Linux

  2. Apa yang setara dengan perintah File Linux untuk windows?

  3. Untuk apa Linux test -a command test?