Обратный файл пуст после конвейерной обработки

Я только начал изучать Linux, и у меня возникли проблемы с пониманием конвейера. Мне интересно, почему reversed.txt пуст? Я хочу сначала сохранить несортированный файл, затем перейти к обратной сортировке, а затем сохранить в reversed.txt. Моя строка кода:

cat file1.txt file2.txt | tee > unsorted.txt | xargs sort -r | xargs cat > reversed.txt 
0
задан 4 December 2020 в 02:27

1 ответ

У вашей команды есть ряд проблем.

  1. Каналы соединяют стандартный вывод со стандартным вводом. Поскольку вы перенаправляете стандартный вывод tee в файл, на вход оставшейся части конвейера нечего подавать. Это должно быть

      cat file1.txt file2.txt | тройник несортированный.txt | ...
     
  2. 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
2
ответ дан 3 December 2020 в 23:43

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

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