Xác định ký tự dòng mới trong tệp văn bản?


8

đưa ra một văn bản, có một chương trình có thể phát hiện ký tự dòng mới là gì, Windows, Mac hoặc Linux không?

Ví dụ, văn bản sau được hiển thị bởi less

bộ nhớ: ^ M ^ Lưu trữ sai có thể truy cập trực tiếp bởi CPU ^ M ^ Thuật ngữ "bộ nhớ" MThe thường (nhưng không phải luôn luôn) được liên kết với bộ nhớ bán dẫn có địa chỉ, tức là các mạch tích hợp bao gồm các bóng bán dẫn dựa trên silicon. ^ Bộ nhớ bán dẫn MThe được tổ chức thành ^ Tế bào mô phỏng

Tôi nghĩ ^ M là nhân vật dòng mới trong Mac. Nhưng trong emacs, tôi đã tìm kiếm bằng Ctrl-q Ctrl-m và không tìm thấy gì.

Cảm ơn.


1
filelệnh sould cho một manh mối, dos2unixcũng có thể giúp đỡ.
Archemar

Câu trả lời:


9

filesẽ báo cáo về kết thúc dòng cho các tập tin văn bản. fileVí dụ, nếu bạn chạy trên tệp văn bản ASCII Unix / Linux / OSX, nó sẽ báo cáo đơn giản:

$ file test.txt
test.txt: ASCII text

Tuy nhiên, nếu tệp có kết thúc dòng DOS / Windows, thay vào đó, nó sẽ báo cáo:

test.dos: ASCII text, with CRLF line terminators

Lên đến OS 9, máy Mac đã sử dụng CR làm dòng kết thúc. Khi được trình bày với một tập tin như vậy, filesẽ báo cáo:

test.mac: ASCII text, with CR line terminators

Với OSX, máy Mac được chuyển đổi thành các kết thúc dòng Unix tiêu chuẩn.


Nếu một tệp văn bản là hỗn hợp văn bản từ Linux, Mac và Windows. fileVẫn sẽ báo cáo đúng nhân vật dòng mới?
Tim

@Tim Tôi đã thử nghiệm nó trên một số tệp hỗn hợp và nó đã báo cáo chính xác các kết thúc hỗn hợp. Ví dụ, với cả ba loại, nó đã báo cáo ASCII text, with CRLF, CR, LF line terminators.
John1024

Tôi đã thử điều này và nó đã cho tôi ASCII text, with very long lines. Những kẻ hủy
diệt

@ Termforthewise Thiết bị đầu cuối LF là tiêu chuẩn unix và linux. Nếu một tập tin có các đầu cuối LF, thì filekhông đề cập đến những đầu mối nào được sử dụng. Xem ví dụ đầu tiên trong câu trả lời ở trên. Terminator chỉ được đề cập nếu tập tin có terminator không unix. Xem ví dụ thứ hai và thứ ba trong câu trả lời ở trên. Một cách riêng biệt, có khả năng tệp của bạn có một hoặc nhiều dòng dài.
John1024

1
Tôi hiểu. Tôi chỉ nghĩ rằng nó thật buồn cười khi nó nói 'những dòng rất dài'
lời giới thiệu
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.