Jim Meyering wrote: > Pádraig Brady wrote: >> On 22/03/10 15:33, Eric Blake wrote: >>> On 03/22/2010 06:41 AM, Pádraig Brady wrote: >>>> So that probably means we need to go with a different name. >>>> `inplace` is the next best one I can think of which >>>> at least mirrors the well known sed --in-place and perl -i options. >>> >>> inplace sounds like a decent name to me. Sounds like an interesting >>> filter to add. >> >> The name is not too bad, but it does annoy me a bit, >> as commands are usually of the form >> verb --how >> for e.g. >> sed --in-place >> >> But if we used `inplace` we'd change to: >> how "what" file... >> >> By using `replace` we would be back to the more normal form: >> replace "how" file... >> >> However `replace` is used by mysql-server as previously mentioned. >> And `repl` is used by nmh. How about keeping with the terse unix >> tradition while alluding to the relationship with cp/mv/rm by using... >> >> rp > > I wouldn't object. > > A possible bastardized compromise: re-place > It's sort of analogous to in-place.
Picking up on an 18-month-old thread, Egan McComb found the tool I'd seen: sponge: Egan McComb wrote: > On Sat, 20 Mar 2010 09:32:57 +0100, Jim Meyering wrote: >> I'm nearly certain I've seen a program (possibly a small perl script) >> that can effectively add the --in-place functionality to any filter >> program, but so far my searches have been in vain. >> >> I want a tool that works like this: >> >> in-place [--backup] 'cppi ...options' *.c >> >> For each .c file, it would apply the filter program, and upon each >> successful exit, it would update the .c file in place (atomically, of >> course) with the output from the filter. >> >> Can anyone point to existing code that does that? >> >> Jim > > I know this is an old thread, but as far as I can tell the problem > hasn't yet been resolved. > > The program that works similarly is called sponge, from the moreutils > project at http://kitenet.net/~joey/code/moreutils/. It is used as a > filter in a pipe: > > for FILE in *.c; do cppi ...options $FILE | sponge; done > > I'm not sure if it fulfills the other considerations laid out in the > thread, but it is what I use when I need in-place editing of files. Ahhh! That's it. Thank you! for FILE in *.c; do cppi ...options $FILE | sponge $FILE; done It's a fine argument for not adding an --in-place option. It could use a --backup option, though.
