On Wed, 2001-11-21 at 03:19, Vineet Kumar wrote: > * Michael Heldebrant ([EMAIL PROTECTED]) [011120 12:17]: > > On Tue, 2001-11-20 at 11:56, Michael A. Miller wrote:
> > > > sed -e "s/'\$//"|sed -e "s/'//" Strips them both off, but the last > > version of the sed command only strips the first ' off and trying to > > combine them isn't working for me with (|) syntax. Maybe a regexp or > > sed guru could give me a pointer. > > IANAG, but I can give a few pointers. At a shell prompt, you can remove > the single quotes from stdin in this situation in a couple of ways: > > | sed -e "s/'\(.*\)'/\1/" Just to make sure I grok this fully: We're splitting the line into a beginning ', the matching regexp pattern of any character as many times as we want, followed by a closing '. Then we strip the ' by just substituting the regexp matched portion with the \1 argument. I still don't quite understand why the syntax I was using wasn't working but this is my first foray into sed. I had assumed sed would match any and all ' and replace them with null. Or does the regexp syntax stop with the first match per line? > > That removes the ticks from the first single-quoted expression in a > line. Simpler still (to just remove any ticks): > > | tr -d "'" This is the simpler solution I see now. But I think learning sed is more usefull in the long run for other text trickery. > > for your particular case, though, to just avoid having to use a temp > file, and given that it doesn't complain about getting single quotes > anyway, just tell wget to read from stdin by specifying - as its input > file: > > apt-get install $yourpackages --print-uris -y --reinstall | tail +5 | > awk '{print $1} | wget -i - Slightly complicated command line but it gets the job done. Perhaps this functionality can be integrated into apt as a --redownload switch or something. Worth filing a wishlist bug against it? --mike