Artem Chuprina wrote: > Serhiy Storchaka -> [email protected] @ Thu, 25 Sep 2008 > 10:34:12 +0300: > >> P.S. В sed-е FreeBSD опция -i таки. Это во-первых. Во-вторых, -i нет > >> в стандарте, и, стало быть, идет он лесом лесом, полем полем. На мой > >> взгляд, совершенно бесполезная и ненужная вещь, идущая вразрез со > >> всеми остальными ютилами юникса. > > SS> Гораздо полезнее была бы допустим утилита inplace, берущая имя > SS> файла, скармливающая содержание на вход программе или даже > SS> конвейеру и записывающая назад результат. > > Беда в том, что в модель использования шелла такая утилита не ложится. > Потому что пайп организуется шеллом. А делать ее на одну команду - > очень обгрызенная функциональность получается. Именно поэтому у sed > ключ -i не шибко полезен. В отличие от перла, на котором программа той > же функциональности, если эта функциональность не тривиальна, как > правило, на порядок короче.
Поэтому лучше было бы это сделать встроенной возможностью шелла, как и пайпы. «Заворачивание» конвейера в исходный файл, без перезаписи. Ведь не так уж и редко такая возможность нужна — и многие утилиты, работающие как фильтры (sed, dos2unix и т.п.), вынуждены реализовывать обработку частного случая модификации файла сами. Кстати, чаще всего всё же речь идёт о одной программе (в крайнем случае несколько можно натравить на тот же файл последовательно). Пожалуй я всё же запишу inplace.sh себе в ~/bin. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

