Насколько выражение типа cat file | sed '...' > file корректно?
Где-то встречал мнение, что на системах с HT оно может давать произвольные результаты...
cat file | sed '...' >file
Модератор: Модераторы разделов
cat file | sed '...' >file
Как всякое несовершенное существо я могу ошибаться. Простите меня.
jabberId = foldl (flip (:)) [] "ur.rebbaj@43sugob"
jabberId = foldl (flip (:)) [] "ur.rebbaj@43sugob"
Re: cat file | sed '...' >file
имхо, оно где угодно может давать произвольные результаты.... (хотя лично у меня это дает только один результат - пустой file)
тогда уж sed -i.bak -e '...' file используй, если хочется...
тогда уж sed -i.bak -e '...' file используй, если хочется...
слава роботам!
Re: cat file | sed '...' >file
с sed -i понятно...
вариант cat | sed у меня всегда работает как планировалось.
я думал, что будет так: читаем файл, отдаем вывод в sed, вывод sed'а записываем в файл. т.е., именно в этой последовательности...
а какая у вас система?
вариант cat | sed у меня всегда работает как планировалось.
я думал, что будет так: читаем файл, отдаем вывод в sed, вывод sed'а записываем в файл. т.е., именно в этой последовательности...
а какая у вас система?
Как всякое несовершенное существо я могу ошибаться. Простите меня.
jabberId = foldl (flip (:)) [] "ur.rebbaj@43sugob"
jabberId = foldl (flip (:)) [] "ur.rebbaj@43sugob"
Re: cat file | sed '...' >file
дело в том, что к пустому файлу у меня приводят все подобные конструкции, в том числе cat file | iconv ... > file, cat file | grep ... > file, cat file | sort > file и проч.....
причем такое поведение замечено на всех подопечных системах: на 10 слаквари, 4.11 фре, 5.9 СанОс...
на СанОс стоит 2.05 bash. на остальных - не помню.... возможно все дело именно в шелле, т.к. в случае конструкции "... > file" - file создается/обнуляется еще до начала выполнения первой команды, в чем можно убедиться на примере команды "sleep 999 | cat > file", которая обнуляет file даже и близко не дожидаясь завершения sleep.
причем такое поведение замечено на всех подопечных системах: на 10 слаквари, 4.11 фре, 5.9 СанОс...
на СанОс стоит 2.05 bash. на остальных - не помню.... возможно все дело именно в шелле, т.к. в случае конструкции "... > file" - file создается/обнуляется еще до начала выполнения первой команды, в чем можно убедиться на примере команды "sleep 999 | cat > file", которая обнуляет file даже и близко не дожидаясь завершения sleep.
слава роботам!
Re: cat file | sed '...' >file
у меня тоже bash...
может у вас таки HT включен? в таком случае ответ понятен
может у вас таки HT включен? в таком случае ответ понятен
Как всякое несовершенное существо я могу ошибаться. Простите меня.
jabberId = foldl (flip (:)) [] "ur.rebbaj@43sugob"
jabberId = foldl (flip (:)) [] "ur.rebbaj@43sugob"
Re: cat file | sed '...' >file
если расскажете, как включить HT на спарке, первом пне или 486DX - буду благодарен (:
кроме того, мне кажется, что уже можно закрыть тему... ибо если хоть на одной машине это работает некорректно, то можно считать, что это undefined behavior. соответственно не надо использовать такие конструкции вовсе...
кроме того, мне кажется, что уже можно закрыть тему... ибо если хоть на одной машине это работает некорректно, то можно считать, что это undefined behavior. соответственно не надо использовать такие конструкции вовсе...
слава роботам!