can't invoke sed properly...

Charles Hallenbeck chuckh at hhs48.com
Mon May 2 18:48:59 EDT 2005


Sed has an option to edit a file "in place" with an optional backup 
created if you need one. The option is -i and it has worked fine for me. 
Sed has also been able to edit files with lines that are 32K in length, 
although I used it as a filter in that application and did not try to 
"in place" option.


On Mon, 2 May 2005, Laura Eaves wrote:

> Be careful putting the output into the same file as the input.
> Note that I/O redirection takes place before the programs start running, so
> cat will open myfile and the shell will redirect the output to the input of
> sed, and before sed or cat ever start running, the shell will clobber the
> output file if it exists to make way for the output of sed.
> Just use different names and later move the file back to the original if you
> want it updated.
> Oh and you don't use the -e option -- I don't remember what version of sed I
> was using when I ran that.
> But the -e option is useful if you have several patterns to apply to each
> input line.  sed will read the -e options left to right and treat each
> pattern as being on one line.  Of course you could always just use a quoted
> pattern that ran over multiple lines, but it is cleaner to use -e.
>
> Finally, be careful using sed or any other pattern matching command, that
> you use single quotes instead of double quotes on the command line, as using
> double quotes will result in some undesired translation.  For example:
>
> sed "1,$d"
>
> will actually translate to
>
> sed "1,xyz"
>
> where xyz is the value of the environment variable d.
> Lots of little gotchas in pattern matching.
> Have fun!
> --le
>
> ----- Original Message -----
> From: "Lorenzo Taylor" <lorenzo at taylor.homelinux.net>
> To: "Speakup is a screen review system for Linux." <speakup at braille.uwo.ca>
> Sent: Monday, May 02, 2005 4:50 PM
> Subject: Re: can't invoke sed properly...
>
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Someone tell me if there is an easier way, but this worked for me:
>
> cat my-file | sed "s/red/blue/g" > my-file
>
> This line replaced red with blue every time it appeared in the file.
>
> I am using GNU sed version 4.1.4 here.  Your mileage may vary.
>
> Lorenzo
> - --
> "We decided that we should evaluate the Microsoft offerings first. Once we
> realised what a powerful set of tools they were, it became self-evident this
> was
> the right way to go down."
>
> Microsoft: the right way to go down
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.0 (GNU/Linux)
>
> iD8DBQFCdpKPG9IpekrhBfIRAg8oAJ0WeiXYLHbneHy2fzhSDq79r/23YACglvjU
> j3rSTXu9XzKF+eUximAMCB0=
> =sm17
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Speakup mailing list
> Speakup at braille.uwo.ca
> http://speech.braille.uwo.ca/mailman/listinfo/speakup
>
>
> _______________________________________________
> Speakup mailing list
> Speakup at braille.uwo.ca
> http://speech.braille.uwo.ca/mailman/listinfo/speakup
>

-- 
The Moon is Waning Crescent (31% of Full)
"Things are in the saddle, and they ride mankind." Ralph Waldo Emerson
Visit my download site at http://www.mhcable.com/~chuckh




More information about the Speakup mailing list