[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Add new option --in-place
From: |
Pádraig Brady |
Subject: |
Re: [PATCH] Add new option --in-place |
Date: |
Sat, 03 Sep 2011 18:56:49 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20110707 Thunderbird/5.0 |
On 09/03/2011 05:50 PM, Jim Meyering wrote:
> 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.
>
Yes a general "replace" util is preferable to --in-place options everywhere.
I noted previously that `sponge` was functionally equivalent to
method 6 here: http://www.pixelbeat.org/docs/unix_file_replacement.html
The latest (unfinished) inplace script I was working on is at:
http://lists.gnu.org/archive/html/bug-coreutils/2010-03/txt2gh88PrwZy.txt
It leverages coreutils quite well I think, including the --backup options.
It's on the TODO list to integrate, perhaps as a contrib dir of scripts.
cheers,
Pádraig.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH] Add new option --in-place,
Pádraig Brady <=