Chris Devers said: > On Mon, 22 Nov 2004, Gavin Henry wrote: > >> I have a log file a like this: >> >> The following packages were available in this version but NOT upgraded: >> Canna-devel-3.7p3-6.i386.rpm >> GConf-devel-1.0.9-15.i386.rpm >> Guppi-devel-0.40.3-21.i386.rpm >> HelixPlayer-1.0.1.gold-6.i386.rpm >> Maelstrom-3.0.6-6.i386.rpm >> MagicPoint-1.11b-1.i386.rpm >> NetworkManager-0.3.1-3.i386.rpm >> NetworkManager-gnome-0.3.1-3.i386.rpm > > I know it's not the fasionable way to do this, but I just like doing > this sort of thing on the command line with shell tools. > > Let's say the command to get the lines out of the file is: > > grep '\.rpm$' logfile > > (If it's not that, amend as needed.) > > Try something like this to get the raw list: > > $ grep '\.rpm$' logfile | sed 's/\-[0-9].*//' | fmt -1000 > Canna-devel GConf-devel Guppi-devel HelixPlayer Maelstrom MagicPoint > NetworkManager NetworkManager-gnome > $
Cool, cheers. > > And something like this to actually install it: > > $ rpm -i `grep '\.rpm$' logfile | sed 's/\-[0-9].*//' | fmt -1000` > > (Or whatever the `rpm` command is -- I mainly use Debian, not RedHat, so > I forget how to use RPM these days...). it would be apt-get, as this works on Fedora too, and yum. > >> Can I make a regex for this, (don't tell me how, I'm just not sure >> which way to go) or should I carry one with substition? > > Yeah, you can; the `sed` command above should point you the right way. Thanks again. > >> Also, could I match rpm and substitute so many characters in front of it >> as >> well, like match rpm + 7 chars? That was just a guess. > > Sure, but why seven? > > $ echo MagicPoint-1.11b-1.i386.rpm > MagicPoint-1.11b-1.i386.rpm > $ echo MagicPoint-1.11b-1.i386.rpm | sed 's/.*\(.......rpm\)/\1/' > 1.i386.rpm > > Or some variant on that... Thanks. > > > > -- > Chris Devers > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>