4 ms·
Option -i is not defined in POSIX sed. That's probably the reason author didn't include it in his list. I have heard that it's GNU sed option only. (But can't
by pkrumins 17y ago
Option -i is not defined in POSIX sed. That's probably the reason author didn't include it in his list.
I have heard that it's GNU sed option only. (But can't currently say if it's 100% true.)
- silentbicycle 17y agoThere's no reason why this functionality should be in sed when it can be implemented on its own and re-used. IIRC there's an an example script to for that in _The Unix Programming Environment_. Better to use sudo than have everything implement its own sudo-like functionality, etc. See "UNIX Style, or cat -v Considered Harmful" by Rob Pike (http://harmful.cat-v.org/cat-v/ http://harmful.cat-v.org/cat-v/) for a longer discussion of this.
- imurray 17y agoIn place operations have been implemented as a standalone utility: sponge from moreutils. sed 's/blah/foo/' file | sponge file
- wendroid 17y agoThe irony s stands for stream there is no s in ed
- silentbicycle 17y agoI checked - it's pgs. 152-156. They call their utility "overwrite". "...Many other commands could also use a -o command. For example, sed could edit a file in place: ... It would be impractical to modify all such commands to add the option. Furthermore, it would be bad design: it is better to centralize functions, as the shell does with the > operator."
- rdtsc 17y agoYes, thank you. Forgot to qualify that -i is only in GNU sed. But I think it is in GNU sed for a reason -- it is a practical shortcut. The only thing I use sed for is to do search and replaces. If the command spanned 2 lines or had pipes and redirects a lot of people just wouldn't remember it.
- wendroid 17y agoIf I'd want to edit in place I use ed If I want to edit a stream I use sed