[linux-l] `dpkg -l` und das abschneiden einer Spalte...

Oliver Beck manofwar at web.de
Fr Mär 5 19:26:51 CET 2004


Hallo BeLUG'ler,

ich stehe mal wieder vor einem Problem, das ich nicht selbst lösen kann.

Folgendes will ich erreichen:

Mittels `dpkg` alle installierten Pakete ausgeben lassen.
Diese daraufhin überprüfen, ob sie Dateien in '/opt' installiert haben.
Wenn dem so ist, den Paketnamen in eine temporäre Datei speichern.

Klingt alles recht einfach...

Nun beschreibe ich mal, wie ich das versucht habe.

Ich habe ein Script geschrieben, das folgendermaßen aussieht:

---snip---

OPTPKG=`dpkg -L $PKG | grep "\/opt\/"`

for PKG in `dpkg -l | grep "ii" | awk '{print $2}'`; do

	if [ ${OPTPKG} == "0" ]; then
		echo $PKG >> /tmp/foo
	fi

done

---snap---

Das ganze funktioniert aber nicht. Es wird die 2. Spalte (die
den Namen des Paketes enthält), wenn ich die Ausgabe auf etwas anderen
umleite, nach 14 Zeichen abgeschnitten. Pakete, die also einen längeren
Namen haben, als die besagten 14 Zeichen, werden von dem Aufruf in der
if-Schleife nicht erkannt.

Wenn ich ein simples `dpkg -l` ausführe, wird es hingegen komplett
ausgegeben.

Ich kann mir eigentlich schwer vorstellen, das es an `dpkg` liegt, das
die Zeichen abgeschnitten werden. Wenn dem doch so ist, lasse ich mich
gerne berichtigen. Andererseits wüsste ich aber auch nicht, wer daran
die Schuld trägt.

Ich bin über jeden Hinweis dankbar.


MfG/Best Regards Oliver Beck

-- 
 /"\ -ASCII-Ribbon-Campaign- |
 \ /    Against HTML Mail    | -Linux on an VIA EPIA-M9000-
  X                          |    http://epia.std-err.de
 / \                         |        (german only)



Mehr Informationen über die Mailingliste linux-l