Разница между "сортировать <вывод" и "сортировать вывод" - PullRequest
0 голосов
/ 05 сентября 2011

Я просто хочу узнать разницу между:

sort < output

и

sort output

в Linux. Как это работает точно?

Ответы [ 4 ]

2 голосов
/ 05 сентября 2011

Это обсуждалось в unix.stackexchange здесь: Разница в производительности между stdin и аргументом командной строки

В sort < file оболочка выполняет перенаправление.Он открывает файл и передает дескриптор файла stdin команде sort, которая его читает.

В sort file команда sort открывает файл и затем читает его.

2 голосов
/ 05 сентября 2011

sort < output говорит оболочке использовать содержимое файла output и вывести его в стандартный для сортировки команд.

sort output указывает команде sort использовать файл output на диске в качестве источника.

Многие команды Unix принимают стандартный входной файл или файл в качестве входных данных.Принятие стандарта in позволяет упростить цепочку команд, часто для таких вещей, как ps aux | grep "my process" | sort.(Список всех процессов, фильтрация по «моему процессу», сортировка строк).

1 голос
/ 05 сентября 2011

С помощью sort < input оболочка выполнит команду sort и присоединит свои данные к файлу 'input'.

При sort input оболочка выполнит команду sort и передаст ей в качестве параметра строку input. Команда sort откроет файл для чтения. Содержимое.

0 голосов
/ 05 сентября 2011

Эффективно разницы нет.

sort < output использует функцию оболочки, называемую перенаправлением файлов (см., Например, здесь )

Оболочка открывает файл тайла output и присоединяет этот открытый файл как stdin к программе сортировки.

sort output дает имя файла output в качестве аргумента командной строки для сортировки.

sort, так как многие утилиты, которые принимают имя файла в качестве аргумента, будут пытаться прочитать ввод из stdin, если вы не дадите ему имя файла в качестве аргумента, как в первом случае здесь. В обоих случаях sort считывает содержимое файла output, сортирует его и записывает результат в стандартный вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...