cc:  [EMAIL PROTECTED]
Subject: Re: [ast-users] In-place file modification
--------

> Hi all,
> 
> sometimes it would be convenient on the command line to modify files in-place,
> something like the -i option in perl. Perl first renames the original
> file to a temporary
> name or one with a specific extension appended and then writes stdout to a new
> file with the old name and the original file attributes.
> 
> However, what I would find convenient, would be a 'delayed output operator' 
> like
> e.g. >|| that would first create an exclusive temporary (dot-)file in
> the same directory
> and then when all data is written [and maybe fsync()ed], it is renamed to the
> actual given name and its attributes are set as expected for a new
> file. Kind of like
> it atomically shows up from nowhere at once after the old file is not
> needed anymore,
> and also nobody can access an incompletely written file by accident.
> 
> Is there already such a mechanism that's convenient to use?
> 
> Like that I could do
> $ nl myfile | iconv -fL1 -tUTF-8 >||myfile
> without having to type mv and rm.
> 
> 
> Thanks,
>     Markus

Yes, this already exists,  you can do

$ nl myfile | iconv -fL1 -tUTF-8 1<> myfile

<> opens the file for reading and writing.  The default is file descriptor is 0.

        tr [A-Z] [a-z] < file 1<> file


David Korn
[EMAIL PROTECTED]
_______________________________________________
ast-users mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-users

Reply via email to