Re: ed scripts in Windows command shell

Kam-Hung Soh <[email protected]>
Newsgroups gmane.comp.gnu.utils
Organization Private
Message-ID <[email protected]>
[email protected] wrote:
> On May 17, 12:14 am, "Kam-Hung Soh" <[email protected]> wrote:
>> On Fri, 16 May 2008 07:27:53 +1000, <[email protected]> wrote:
>>> On May 14, 4:24 pm, [email protected] wrote:
>>>> Although I have experience with diff and ed on *nix, I just can't seem
>>>> to get ed to work in the Win32 environment (cmd.exe).
>>>> diff -e oldfile newfile > script.ed
>>>> gives the proper ed commands, but any variation of
>>>> type script.ed | ed oldfile > result
>>>> just won't work: I get either an empty result, or the last line of the
>>>> original file repeated a few times in the result. I've tried 'for'
>>>> loops with 'echo' and 'type', appending 'w' and 'q' commands to
>>>> script.ed, and all sorts of variations. Still no luck.
>>>> Has anyone had success using 'ed' commands with Win32?
>>>> P.S. I want to use the 'ed' output from diff, since several 'ed'
>>>> commands can be concatenated together to apply several changes -
>>>> unlike 'context' and 'unified' diffs that have to be appiled
>>>> individually against each intermediate result.
>>> P.P.S.
>>> I'm trying to use the GnuWin32 ed utility.
>> This worked:
>>
>> ed < script.ed oldfile
>>
>> Note that script.ed has "w" at the end to tell ed to write the changes.
>>
>> If you have multiple ed script files generated by diff, then concatenate  
>> all the script files and append "w" into one script file.  In cmd.exe:
>>
>> (cat f1 f1 ... && echo w) > script.ed
>>
>> Don't know GnuWin32's ed doesn't accept input from a pipe.
>>
>> --
>> Kam-Hung Soh <a href="http://kamhungsoh.com/blog">Software Salariman</a>- Hide quoted text -
>>
>> - Show quoted text -
> 
> Thanks for the reply.
> 
> Even when script.ed has a "w"  (or "w" and "q")  appended to it,
> oldfile remains unchanged. :-/
> 
> script.ed:
> 
> 78a
> 
>     public void noop();
> .
> w
> 
> ----
> 
> ed < script.ed oldfile
> 
> doesn't change oldfile
> 
> ed oldfile < script.ed
> 
> doesn't change oldfile
> 
> I've had success with GnuWin32 'patch', applying incremental diffs,
> but just can't get 'ed' to work.  If not for your 'This worked", I
> would conclude that 'ed' just can't be used this way in a Win32
> environment.
> 
> - Randall

What a puzzle.

Which version of "ed" are you using?  Mine is:

C:\Temp>ed --version
GNU ed version 0.2

-- 
Kam-Hung Soh <a href="http://kamhungsoh.com/blog">Software Salariman</a>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.