Я только начал изучать Linux, и у меня возникли проблемы с пониманием конвейера. Мне интересно, почему reversed.txt пуст? Я хочу сначала сохранить несортированный файл, затем перейти к обратной сортировке, а затем сохранить в reversed.txt. Моя строка кода:
cat file1.txt file2.txt | tee > unsorted.txt | xargs sort -r | xargs cat > reversed.txt
У вашей команды есть ряд проблем.
Каналы соединяют стандартный вывод со стандартным вводом. Поскольку вы перенаправляете стандартный вывод tee
в файл, на вход оставшейся части конвейера нечего подавать. Это должно быть
cat file1.txt file2.txt | тройник несортированный.txt | ...
xargs
превращает стандартный ввод в аргументы данной команды. Команды sort
и cat
ожидают, что их аргументы будут именами файлов. Итак, вы просите запустить sort
(а затем cat
) для файлов, названных как каждая из строк в исходных файлах, а не для самих строк.
cat файл1.txt файл2.txt | тройник несортированный.txt | сортировать -r | кошка > наоборот.txt
Однако финальный cat
лишний, поэтому достаточно
cat file1.txt file2.txt | tee unsorted.txt | sort -r > reversed.txt