После выполнения команды cat mydata.txt | sort | uniq | > mydata.txt
, почему файл mydata.txt имеет значение null?Сортировка трубопровода стирает файл
ответ
Ответ: пробел между |
и > mydata.txt
подал вывод uniq в ничто и отправил его в файл.
Даже если у вас была команда после последнего |
, она все равно записывала бы mydata во время чтения из нее, что плохо и может удалить большую часть содержимого.
В оболочках Linux конвейеры команд не выполняются последовательно. Все выполняются одновременно, а выход одной команды присоединен ко входу следующей команды.
Вы можете подтвердить simulataneous операции, наблюдая, что ваш компьютер работает от другого окна терминала, используя утилиты, как top
или pstree
Поэтому, как комментаторы предложили, вы должны использовать временный файл в качестве выходного сигнала. После создания результата переместите его обратно к исходному имени и удалите его.
Как это:
cat mydata.txt | sort | uniq > tmp-mydata.txt
mv tmp-mydata.txt mydata.txt
Или, как @tripleee предполагает, команда вроде уже имеет функциональность Uniq, и можно использовать следующую команду:
sort -u -o mydata.txt mydata.txt
Как правило, запись в файл вы читаете из небезопасного, но, возможно, здесь сортировка хранит что-то внутренне.
- 1. Запись исправленного текста стирает файл
- 2. Ввод трубопровода в файл
- 3. Дженкинс трубопровода - файл не найден
- 4. Haml стирает javascript
- 5. BizTalk - создать файл журнала для повреждения трубопровода
- 6. Единство стирает части изображения
- 7. Брандлер стирает формат регистратора?
- 8. dsPic33 страница стирает размер
- 9. Jquery: маска не стирает
- 10. Количество строк в файле с Python стирает файл
- 11. Опасности трубопровода
- 12. Архитектура трубопровода
- 13. Solr delta-import стирает индекс
- 14. boost :: multi_index_container стирает функцию rehases?
- 15. Список итератор стирает «Ошибка отладки»
- 16. Сочетание ggplots стирает оригинальный сюжет?
- 17. Освежающий холст стирает предыдущие данные
- 18. Почему стирает вместо добавления. Plist
- 19. Рельсы выпуск трубопровода активы
- 20. COBOL Сортировка транзакций Файл
- 21. Сортировка Текстовый файл
- 22. Рельсы политика активами трубопровода
- 23. Повторное использование поточного трубопровода/подводного трубопровода в Node.js/Gulp
- 24. XCODE чтение текста из файла стирает переменные
- 25. Rails 3.2 активов вопрос трубопровода
- 26. Перекрытие Bootstrap в Джанго-трубопровода
- 27. Выход терминала трубопровода в файл из программы C
- 28. Пользовательский файл трубопровода и структура каталогов в C#
- 29. Как получить базовую установку stdout трубопровода в файл в Nodejs?
- 30. Установка трубопровода и обработка данных
Ваша команда не имеет смысла – meda
потому что '| > 'это опечатка. Довольно уверен, что вы имеете в виду 'cat mydata.txt | сортировать | uniq> mydata.txt' – WhozCraig
Попробуйте 'cat mydata.txt | сортировать | uniq> mydata.tx' – juanchopanza