Tại sao lệnh tr không đọc từ tệp?


10

Tôi đã tra cứu một cuốn sách Unix, người đàn ông và trang wikipedia trnhưng không thể tìm thấy lý do tại sao nó được thiết kế / thực hiện theo cách mà nó không đọc từ tệp mà chỉ hoàn toàn từ đầu vào tiêu chuẩn. Ví dụ, các công cụ như wc, grep, sed, và awktất cả sẽ hạnh phúc đọc thông tin từ tập tin nếu được cung cấp hoặc từ đầu vào tiêu chuẩn. Đã / Có một lý do thuyết phục để thiết kế trtheo cách này?


2
Nó không được mã hóa theo cách đó, và cuộc sống vẫn tiếp diễn ... Tôi nghi ngờ đó là do một thời điểm khác với các máy bị hạn chế bộ nhớ nghiêm trọng, và tr đã . Các tiện ích Unix cũng được thiết kế bởi một số người và cũng có một số điểm không nhất quán và trùng lặp về chức năng giữa các tiện ích.
Rui F Ribeiro

3
chỉ để chỉ ra: câu hỏi này đã được gắn cờ là chủ yếu dựa trên quan điểm nhưng IMHO không nên bị đóng; chúng tôi đã có những câu hỏi tương tự như vậy về lý do tại sao mọi thứ được thực hiện theo bất kỳ cách nào có câu trả lời rất hợp lệ. xem ví dụ unix.stackexchange.com/questions/6804/what-does-dd-stand-for hoặc unix.stackexchange.com/questions/93773/why-is-sort-o-usiously
strugee

2
Bây giờ đã ra khỏi hàng đánh giá, nhưng vẫn ngồi yên trong 4 phiếu gần - nếu nó nhận được phiếu cuối cùng, vui lòng ping tôi ở đây để tôi có thể bỏ phiếu để mở lại.
Michael Homer

3
@strugee Tôi không đồng ý. Vâng, chúng tôi suy đoán chắc chắn chỉ là ý kiến ​​... nhưng vì vẫn có thể có những người thực sự biết - hoặc nhớ đọc / nghe tài khoản trực tiếp - đó một câu hỏi có thể trả lời được. 1970 không phải là từ lâu.
Baard Kopperud

6
Unix được thừa hưởng trtừ Multics như là một dẫn xuất của hàm tích hợp PL / 1 translate , đến lượt nó là sự khái quát hóa một TRlệnh trong kiến trúc System / 360 (xem Thẻ xanh System-360 của IBM ). Đáng lưu ý rằng việc triển khai QNX thực sự có thể đọc từ một tệp qua-r
don_crissti

Câu trả lời:


12

Các triết lý UNIX những người ủng hộ cho "công cụ nhỏ, sắc nét", do đó câu trả lời là đọc từ một tập tin đó sẽ trái sưng lên để làm triết lý UNIX. Là tại sao wc, grep, sed, awk, vv làm đọc từ các tập tin, câu trả lời là tất cả họ đều có tính năng yêu cầu nhiều hơn một đầu vào hoặc lựa chọn đầu vào hoặc yêu cầu truy cập trực tiếp đến các tập tin. Như trthường không được sử dụng cho những lý do đó, bạn còn lại một trong các hình thức sau đây để đáp ứng nhu cầu của bạn;

tr ... < file
tr ... < file > file2
tr ... < file | sponge file
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.