OS X có định dạng dòng riêng không?


7

Rõ ràng có ít nhất hai loại dòng mới: DOS và Unix. Nhưng OS X có 'định dạng' văn ​​bản riêng không?

Tôi mở một tệp văn bản nanovà ngạc nhiên khi thấy:[ Read 26793 lines (Converted from Mac format) ]

Định dạng Mac là gì, nó khác với tập tin được viết bằng công cụ Unix như nano như thế nào và tại sao nó cần phải được chuyển đổi từ để đọc nanotrên máy Mac?

Câu trả lời:


14

Cần phải chỉ ra rằng Mac OS X hiện sử dụng \naka linefeed ( 0x0A), giống như tất cả các hệ thống * nix khác. Chỉ Mac OS phiên bản 9 trở lên được sử dụng \r(CR).

Tham khảo: Wikipedia về dòng mới .


4

jw013 chỉ ra trong một câu trả lời khác rằng Mac hiện đã chuyển sang tiêu chuẩn * nix \n.

Trước đây, Mac OS là \r(trả lại vận chuyển, 13 / 0x0D); Windows là \r\nvà * nix là \n(linefeed, 10 / 0x0A). Tôi không chắc chắn cho các hệ thống tối nghĩa hơn, nhưng tôi đoán gần như mọi thứ khác cũng vậy \n. Sự khác biệt đến từ thời của teletype khi \nchuyển sang dòng tiếp theo và \rsẽ di chuyển đầu trở lại bắt đầu (bên trái) của trang, khá giống với những gì người ta phải làm (thủ công) với một máy đánh chữ trở lại ngày. Lưu ý rằng trong một thiết bị đầu cuối trên Linux, \rvẫn di chuyển con trỏ đến đầu dòng hiện tại thay vì chuyển xuống dòng tiếp theo, phù hợp với việc sử dụng teletype của nó. Tôi đã xem lịch sử chi tiết hơn về lý do tại sao mỗi hệ thống chọn loại dòng riêng, vì vậy tôi chắc chắn bạn có thể tìm kiếm thêm chi tiết.

Dù sao, trong các vấn đề thực tế, hầu hết các biên tập viên (trừ notepad) có thể đối phó với bất kỳ loại nào trong ba loại, và có nhiều cách để chuyển đổi giữa chúng. Một số công cụ sao chép từ xa (ví dụ: ftp và có lẽ các chương trình tương tự khác) thậm chí chuyển đổi trong suốt sang các loại dòng chính xác cho đích khi vận chuyển tệp ở chế độ văn bản. Và tôi đã đọc ngày hôm nay trên bài đăng SO 1 rằng gcc thực sự chuyển đổi \nthành dòng kết thúc thích hợp cho hệ thống mà nó đang biên dịch.


Trích dẫn:

Các ký tự kết thúc dòng khác nhau không quan trọng, giả sử tệp được mở ở chế độ văn bản, đó là những gì bạn nhận được trừ khi bạn yêu cầu nhị phân. Chương trình được biên dịch sẽ viết ra điều chính xác cho hệ thống được biên dịch cho.


+1. bạn có thể chia sẻ liên kết SO Post không?
Hoàng tử John Wesley

1
Bạn có một chút hỗn hợp này. Mặc dù bạn đúng rằng Old Mac sử dụng '\ r', Windows sử dụng '\ r \ n' và Unix sử dụng '\ n' - các mô tả và mã hex bạn đưa ra là không chính xác. '\ r' là giá trị vận chuyển 0x0d / 13 và '\ n' là nguồn cấp dữ liệu 0x0a / 10. Tham khảo: en.wikipedia.org/wiki/ASCII#ASCII_control_char
character

1
@Kevin, không có gì bạn nói trong câu trả lời của bạn là sai, nhưng nó không trả lời câu hỏi nào về OS X.
Jeremy Visser

1
Bạn vẫn chưa hoàn toàn cố định teambob sai lầm chỉ ra: 0x0A= 10không giống như 0x10= 16. Tương tự với việc 0x13 không giống như 0x0D.
jw013

1
Tôi không đồng ý - câu trả lời của bạn đã gây hiểu nhầm. OP rõ ràng đã hỏi về "Mac" trong bối cảnh các máy dựa trên OS X hiện đại. Để trạng thái kết thúc dòng Mac là \ r mà không làm rõ vì "Mac OS 9 trở về trước" là sai lệch.
Jeremy Visser
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.