[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ed scripts in Windows command shell
From: |
randall . harp |
Subject: |
Re: ed scripts in Windows command shell |
Date: |
Thu, 29 May 2008 12:37:24 -0700 (PDT) |
User-agent: |
G2/1.0 |
On May 17, 12:14 am, "Kam-Hung Soh" <kamhung....@gmail.com> wrote:
> On Fri, 16 May 2008 07:27:53 +1000, <randall.h...@gmail.com> wrote:
> > On May 14, 4:24 pm, randall.h...@gmail.com 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