Вопрос помогите понять разницу между: sort

поэтому я изучаю Ubuntu (в первый раз) и читаю книгу Ubuntu server

глава 14 говорит

filename.txt | sort даст мне результат с содержимым файла, но отсортирован ОДНАКО, он не упоминает, могу ли я ввести:

filename.txt | sort > sortedfilename.txt для создания нового файла на этот раз с отсортированным контентом, может ли я?

он утверждает, что я могу ввести

sort < filename.txt

и снова, получите отсортированный вывод содержимого файлов он продолжает упоминать, что я могу напечатать sort < filename.txt > sortedfilename.txt

и создать файл со отсортированным контентом

так эти два разных способа сделать то же самое?

Спасибо!


1
2017-12-09 14:24


происхождения




ответы:


В вашем примере кода есть опечатка, в которой я сначала буду обращаться. filename | ... не будет делать ничего, кроме как вырвать ошибку, а затем смутить вещь на другой стороне трубы ... если это имя файла также является глобальным исполняемым файлом, а затем оно не делает то, что вы хотели.

Вам нужно будет cat filename | ...,

Просто чтобы мутить воды, sort также может принимать имя файла в качестве аргумента. Вы могли (и должны, если это ваш фактический прецедент) просто запустить sort filename > sortedfilename,


Во всяком случае, вернемся к перенаправлениям ...

Входное перенаправление (<) читает из файла и передает его в stdin, Чтобы ответить на ваш вопрос, непосредственно эквивалентно cat filename |,

sort команда ищет stdin вместо аргумента имени файла, и сортировка и stdout, Перенаправление вывода (>) затем можно использовать для отправки в файл, а не на экран.

Если вы действительно хотите взорвать свой ум, прочитайте Глава TLDP о перенаправлении ввода-вывода, Это, вероятно, немного более сыры, чем ваша книга, но это прочные, проверенные вещи. На самом деле (просто прочитав его снова), его объяснение довольно приличное.

Положение входа намного более жидкое, чем стальные трубы. Действует следующее:

< filename sort > sortedfilename

2
2017-12-09 14:38



Большое спасибо! вместо того, чтобы просто отвечать на мой вопрос, вы также дали мне дополнительную скидку! очень признателен! - Giladiald