cat file | sed '...' >file

Модератор: Модераторы разделов

Ответить
Аватара пользователя
bogus
Сообщения: 160

cat file | sed '...' >file

Сообщение bogus »

Насколько выражение типа cat file | sed '...' > file корректно?
Где-то встречал мнение, что на системах с HT оно может давать произвольные результаты...
Как всякое несовершенное существо я могу ошибаться. Простите меня.
jabberId = foldl (flip (:)) [] "ur.rebbaj@43sugob"
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: cat file | sed '...' >file

Сообщение elide »

имхо, оно где угодно может давать произвольные результаты.... (хотя лично у меня это дает только один результат - пустой file)
тогда уж sed -i.bak -e '...' file используй, если хочется...
слава роботам!
Спасибо сказали:
Аватара пользователя
bogus
Сообщения: 160

Re: cat file | sed '...' >file

Сообщение bogus »

с sed -i понятно...

вариант cat | sed у меня всегда работает как планировалось.

я думал, что будет так: читаем файл, отдаем вывод в sed, вывод sed'а записываем в файл. т.е., именно в этой последовательности...

а какая у вас система?
Как всякое несовершенное существо я могу ошибаться. Простите меня.
jabberId = foldl (flip (:)) [] "ur.rebbaj@43sugob"
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: cat file | sed '...' >file

Сообщение elide »

дело в том, что к пустому файлу у меня приводят все подобные конструкции, в том числе 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.
слава роботам!
Спасибо сказали:
Аватара пользователя
bogus
Сообщения: 160

Re: cat file | sed '...' >file

Сообщение bogus »

у меня тоже bash...
может у вас таки HT включен? в таком случае ответ понятен :)
Как всякое несовершенное существо я могу ошибаться. Простите меня.
jabberId = foldl (flip (:)) [] "ur.rebbaj@43sugob"
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: cat file | sed '...' >file

Сообщение elide »

если расскажете, как включить HT на спарке, первом пне или 486DX - буду благодарен (:

кроме того, мне кажется, что уже можно закрыть тему... ибо если хоть на одной машине это работает некорректно, то можно считать, что это undefined behavior. соответственно не надо использовать такие конструкции вовсе...
слава роботам!
Спасибо сказали:
Ответить