Mailinglist Archive: opensuse-de (696 mails)

< Previous Next >
Re: bash - substring variabel entfernen
  • From: David Haller <lists@xxxxxxxxxx>
  • Date: Sun, 2 Aug 2009 07:28:02 +0200
  • Message-id: <20090802052802.GB20070@xxxxxxxxxxxxxxxxxx>
Hallo,

Am Fre, 31 Jul 2009, Andre Huebner schrieb:
ich versuche grade eine Liste aus RPM Paketen zu erstellen wobei ich aber
nur den Namen benötige und nicht die Version. Das ist mein bisheriger
Versuch am Beispiel Apache:
rpm -qa | grep apache | gawk -F '-' {'print $1"-"$2"-"$3'}

Äh, aber du gibst hier per awk doch wieder die Version aus? Und dein
Quoting vom awk-Befehl ist, äh, mehr als seltsam.

BTW: das wird so _nie_ zuverlässig funktionieren, da die Paketnamen
und Versionsangaben einfach nicht zuverlässig in so einem Format
vorliegen.

Du suchst 'man rpm' -> queryformat und 'rpm --querytags'.

rpm -qa --queryformat '%{NAME}\n' | grep -i apache

Und natürlich die Anleitung im Maximum-RPM-Book, wie (nicht hier) mit
den diversen Array- und anderen Tags ggfs. umgegangen werden kann.

http://www.rpm.org und speziell, wenn auch wohl etwas veraltet:
http://www.rpm.org/max-rpm/

Ein Beispiel:

$ rpm -qa --queryformat \
'%{installtime}:%{name}-%{version} %{installtime:date}\n' \
| sort -rn | cut -d':' -f2-

Achso: ein paar solcher Abfragen der RPM-Datenbank hab ich eh als
Scripte "abgelegt", z.B. obigen Befehl als '~/bin/rpmlistpackagesbydate'
(wobei da ein alias vermutlich fast sinnvoller wäre).

Das Problem ist das einige Module 3 Namensbestandteile haben und einige nur
2, daher ist die Ausgabe unterschiedlich:

Sach ich doch.

-dnh

--
: I could do that, now I've found somewhere I can get mugs that hold two
: pints. Alas, this mug is only a pint, although I'm on my third mugful today.
You need the Emacs Reference Barre^WMug, although even the vi or vim
Reference Ke^WMug would suffice in most cases. -- P. Corlett, M. Andrews
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages