public inbox for speakup@linux-speakup.org
 help / color / mirror / Atom feed
From: "Laura Eaves" <leaves1@carolina.rr.com>
To: "Speakup is a screen review system for Linux." <speakup@braille.uwo.ca>
Subject: Re: can't invoke sed properly...
Date: Tue, 3 May 2005 06:45:54 -0400	[thread overview]
Message-ID: <006401c54fcd$48867af0$6401a8c0@geekspeak> (raw)
In-Reply-To: <Pine.LNX.4.62.0505021846560.5594@hhs48.com>

This may be a newer implementation of sed.  The one I ran while working on 
the said project (no pun intended) did indeed have a silent buffer limit and 
the bug was a real bear to find but easy to fix -- we just changed to awk, 
which is more flexible and powerful than sed.
I hadn't heard of the -i option, but I don't deny it exists.
But my question is this: don't you have to put the file on the command line 
when using -i rather than just redirecting with the shell > sign?
So you'd presumably have
    sed -i pattern filename
and sed would edit filename in place.
Nice feature.

But note that clobbering an input file by naming it also as the output file 
is a common mistake newbies make with many commands and it is a good idea to 
point it out so the user will beware.

Cheers.
--le

----- Original Message ----- 
From: "Charles Hallenbeck" <chuckh@hhs48.com>
To: "Speakup is a screen review system for Linux." <speakup@braille.uwo.ca>
Sent: Monday, May 02, 2005 6:48 PM
Subject: Re: can't invoke sed properly...


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@taylor.homelinux.net>
> To: "Speakup is a screen review system for Linux." 
> <speakup@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@braille.uwo.ca
> http://speech.braille.uwo.ca/mailman/listinfo/speakup
>
>
> _______________________________________________
> Speakup mailing list
> Speakup@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

_______________________________________________
Speakup mailing list
Speakup@braille.uwo.ca
http://speech.braille.uwo.ca/mailman/listinfo/speakup 



  reply	other threads:[~ UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
 Ned
 ` Laura Eaves
 ` Lorenzo Taylor
   ` Laura Eaves
     ` Lorenzo Taylor
     ` Charles Hallenbeck
       ` Laura Eaves [this message]
         ` Charles Hallenbeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='006401c54fcd$48867af0$6401a8c0@geekspeak' \
    --to=leaves1@carolina.rr.com \
    --cc=speakup@braille.uwo.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).