Câu hỏi giúp hiểu khác biệt giữa: sort

Vì vậy, im học Ubuntu (lần đầu tiên) và đang đọc máng sách máy chủ Ubuntu

chương 14 nói

filename.txt | sort sẽ cho tôi một đầu ra với nội dung của tệp, nhưng được sắp xếp BAO GIỜ nó không đề cập đến nếu tôi có thể gõ:

filename.txt | sort > sortedfilename.txt để tạo tệp mới lần này với nội dung được sắp xếp, tôi có thể?

nó nói rằng tôi có thể gõ

sort < filename.txt

và một lần nữa, có được một đầu ra được sắp xếp của nội dung tập tin nó tiếp tục đề cập đến tôi có thể gõ sort < filename.txt > sortedfilename.txt

và tạo tệp có nội dung được sắp xếp

Vậy hai cách khác nhau này có thực hiện chính xác điều tương tự không?

cảm ơn bạn!


1
2017-12-09 14:24


gốc




Các câu trả lời:


Có một lỗi đánh máy trong mã ví dụ của bạn mà tôi sẽ chỉ giải quyết trước tiên. filename | ... sẽ không làm bất cứ điều gì khác hơn là thốt ra một lỗi và sau đó nhầm lẫn điều ở phía bên kia của đường ống ... trừ khi tên tập tin đó cũng là một tập tin thực thi toàn cầu và sau đó nó không làm những gì bạn muốn.

Bạn cần phải cat filename | ....

Chỉ để bùn nước, sort cũng có thể lấy tên tệp làm đối số. Bạn có thể (và nên, nếu đây là trường hợp sử dụng thực tế của bạn) chỉ cần chạy sort filename > sortedfilename.


Dù sao, quay lại chuyển hướng ...

Chuyển hướng đầu vào (<) đọc từ một tập tin và ống dẫn vào stdin. Để trả lời câu hỏi của bạn, nó là trực tiếp tương đương với cat filename |.

Các sort lệnh tìm kiếm stdin thay cho một đối số tên tệp và thực hiện việc phân loại và đường ống để stdout. Chuyển hướng đầu ra (>) sau đó có thể được sử dụng để gửi nó vào một tập tin chứ không phải là màn hình.

Nếu bạn thực sự muốn thổi hồn, hãy đọc Chương TLDP về chuyển hướng I / O. Nó có thể thô hơn một chút so với cuốn sách của bạn nhưng nó chắc chắn, được thử nghiệm. Trên thực tế (chỉ đọc lại nó), lời giải thích của nó là khá tốt.

Vị trí của đầu vào là rất nhiều chất lỏng hơn so với ống statndard. Sau đây là hợp lệ:

< filename sort > sortedfilename

2
2017-12-09 14:38



Cảm ơn nhiều! thay vì chỉ trả lời câu hỏi của tôi, bạn cũng đã cho tôi một sự bổ sung tốt đẹp! Nhiều đánh giá cao! - Giladiald