Tệp văn bản trông bình thường, được phát hiện bởi tệp dưới dạng văn bản chương trình ASCII Pascal


7

Tôi có một tệp văn bản "bình thường" (chứa các câu tiếng Anh) đang được phát hiện bằng filelệnh như ASCII Pascal program text.

Làm thế nào để văn bản chương trình Pascal khác biệt với văn bản tiếng Anh ASCII bình thường?

tôi đã làm head -10 file > tmp

file tmpvẫn cho thấy Pascal. tmpkhi mở ở VI và:set list

HELEN'S BABIES$
$
With some account of their ways, innocent, crafty, angelic, impish,$
witching and impulsive; also a partial record of their actions during$
ten days of their existence$
$
By JOHN HABBERTON$
$
$
$

Đầu ra của head file | od -c

0000000   H   E   L   E   N   '   S       B   A   B   I   E   S  \n  \n
0000020   W   i   t   h       s   o   m   e       a   c   c   o   u   n
0000040   t       o   f       t   h   e   i   r       w   a   y   s   ,
0000060       i   n   n   o   c   e   n   t   ,       c   r   a   f   t
0000100   y   ,       a   n   g   e   l   i   c   ,       i   m   p   i
0000120   s   h   ,  \n   w   i   t   c   h   i   n   g       a   n   d
0000140       i   m   p   u   l   s   i   v   e   ;       a   l   s   o
0000160       a       p   a   r   t   i   a   l       r   e   c   o   r
0000200   d       o   f       t   h   e   i   r       a   c   t   i   o
0000220   n   s       d   u   r   i   n   g  \n   t   e   n       d   a
0000240   y   s       o   f       t   h   e   i   r       e   x   i   s
0000260   t   e   n   c   e  \n  \n   B   y       J   O   H   N       H
0000300   A   B   B   E   R   T   O   N  \n  \n  \n  \n
0000314

Tệp được tải lên tại đây: http://www.fileswap.com/dl/L0eCWJTvy/

Tôi đang trên CentOS release 6.5, filephiên bản5.04

Có một cái gì đó trong dòng thứ 4. Xóa từ dòng thứ 4 trở đi sẽ phát hiện nó dưới dạng tệp văn bản


2
Vui lòng cho chúng tôi một ví dụ tối thiểu về tệp tái tạo vấn đề. Cũng có một cái nhìn qua head file | od -cđể kiểm tra các ký tự không in.
terdon

@terdon đã làm xong.
dùng13107

Cảm ơn. Bạn đang chạy hệ điều hành nào? Bạn có thể cung cấp cho chúng tôi một liên kết nơi chúng tôi có thể tải xuống tập tin thực tế không? Dường như không có gì lạ trong odđầu ra.
terdon

Bạn có một tập tin $HOME/.magichay $HOME/.magic.mgckhông?
Steeldo

@steel ấn có, tôi có nên chia sẻ không? Có một số số phiên bản cho tập tin đó sẽ làm cho bạn xác định nó?
dùng13107

Câu trả lời:


7

Tôi đã có thể sao chép cả hai điều này trên OS X 10.6.8 và OpenBSD 5.5-current.

In ra thông tin gỡ lỗi bằng cách sử dụng file -D tmp, hóa ra tệp văn bản của bạn thất bại khoảng 2000 bài kiểm tra trước khi file(1)nhận ra từ khóa Pascal recordvà quyết định rằng đó phải là văn bản chương trình Pascal.

Một ví dụ làm việc tối thiểu có thể thu được như sau:

$ echo record > test
$ file test
test: ASCII Pascal program text

Sau nhiều lần phỏng đoán, chỉ áp dụng "bộ thử nghiệm thứ ba & cuối cùng, dựa trên các giả định được thiết lập cứng" trong ascmagic.c . Các thử nghiệm này nhận ra "các loại tệp mà chúng tôi biết dựa trên các từ khóa có thể xuất hiện ở bất kỳ đâu trong tệp". Do đó, những thay đổi tối thiểu đối với tệp của bạn dẫn đến việc xác định chính xác như ASCII English text, ví dụ như thay đổi theirthành thedòng thứ ba.


Arch file-5.19phát hiện tệp Op là văn bản ASCII nhưng thử nghiệm của bạn cho thấy nguồn Pascal, văn bản ASCII . Sau khi thử, strings /usr/share/file/misc/magic.mgc | grep -C 10 'pascal'tôi có thể thấy bản ghi hoặc chương trình ở đầu một dòng hoặc (đầu vào, bất cứ nơi nào trong văn bản kích hoạt nhận dạng như vậy trong trường hợp của tôi. +1

bạn có thể có một cú đâm tại unix.stackexchange.com/questions/140359/ không? cảm ơn.
dùng13107
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.