помогите понять разницу между: sort < file.txt VS file.txt | Сортировать

Так что я изучаю Ubuntu (впервые) и читаю через серверную книгу Ubuntu

Глава 14 говорит, что

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

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

заявить, что могу набрать в

sort < filename.txt

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

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

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

спасибо!

1
задан 9 December 2013 в 18:24

1 ответ

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

Вам нужно cat filename | ....

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


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

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

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

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

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

< filename sort > sortedfilename
0
ответ дан 9 December 2013 в 18:24

Другие вопросы по тегам:

Похожие вопросы: