Почему же все-таки очищается файл?
~$echo '1
2
3' > 1
~$cat 1
1
2
3
~$cat 1 | sed -e "1d"
2
3
~$cat 1 | sed -e "1d" > 1
~$cat 1
~$
Мне кажется это затирание нелогичным... Что тут не так? Как обойти использование буферного файла?
~$cat 1 | sed -e "1d" > 2 && cp 2 1 && rm 2# так норм...
Примечание:
:(
А хотелось бы
~$sed "1d" 1 > 1
Многопоточность? Похоже на правду(своего объяснения просто не нахожу), но все же, как может операция вывода начать работать до того, как получены входные данные от предыдущей команды?
По вашему сначала в примере выше > 1 затирает файл а потом он уже пустой приходит на вход sed? и собственно поэтому выход sed пуст....
Причинно-следственная неразбериха какая-то)))
Примечание:
хотя да, все логично) > 1 устанавливает стандартный поток вывода в файл 1, предварительно очистив его.
И только после этого начинается выполнение всей команды
многопоточность тут ни при чем...
Кстати,
~$sed "1d" 1 >> 1 работает, потому как поток вывода не очищается)
Примечание:
УРЯ! Нашел)
Спасибо Вам за потраченное время)
<<<Цитата
Относительно недавно в sed появилась очень приятная опция -i. Она позволяет производить изменения непосредственно в файле. Если раньше для изменения файла приходилось делать что-то вроде:
$ sed -e 'что-то делаем' test.txt > test.txt.tmp ;\
mv -f test.txt.tmp test.txt
то теперь достаточно
$ sed -i -e 'что-то делаем' test.txt
Цитата
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.