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

Oliver Beck manofwar at web.de
Fr Mär 5 22:49:02 CET 2004


On Fri, 5 Mar 2004 20:00:10 +0100
Jens Dreger <jens.dreger at physik.fu-berlin.de> wrote:

> On Fri, Mar 05, 2004 at 07:26:51PM +0100, Oliver Beck wrote:
> 
> Abgesehen davon, dass man das durch ein einfaches "dpkg -S /opt"
> loesen kann und Dein Script auch deshalb nicht funktionieren wird,
> weil die rechte Seite der OPTARG-Zuweisung sofort ausgewertet wird und
> $PKG da noch gar nicht gesetzt ist, hast Du mit:

Ich dachte, das `dpkg -S` nur auf Dateien angewandt werden kann.
Aber bei genaueren Überlegungen..."Alles ist eine Datei."

Weiterhin ging ich davon aus, das die Zuweisung dann geschieht,
wenn sie genutzt wird, also, wenn sie in der if-Schleife aufgerufen
wird. Nun gut, hab ich mich getäuscht. Danke für den Hinweis.

> vollkommen Recht. dpkg versucht hier besonders smart zu sein und
> berechnet die Spaltenbreite mit Hilfe der COLUMNS Environment
> Variable. Superschlau, hab mich da schon oefter drueber aufgeregt. Das
> Problem tritt naemlich auch schon ohne Output-Redirection auf, wenn
> nur die Paketnamen lang genug sind:

Also...komisch. Ich hatte in der manpage das zu COLUMNS auch gelesen.
Nur, als ich `COLUMNS="200"; dpkg -l` aufrief, änderte sich nichts in
Zusammenhang mit der Spaltenbreite, weshalb ich davon ausging, das es
nicht mit dieser in Zusammenhang steht. Als ich dann Christoph's Antwort
lies, viel es mir wie Schuppen von den Augen. Das ";" nach COLUMNS="200"
ist hier fehl am Platze.


> Daher habe ich irgendwann ein kleines 'dpkgl' gebastelt, welches
> das fixt:
...
> COLUMNS=$[2*$(stty size | cut -d' ' -f2)] dpkg -l "$@" | sed \
> 's/^\([^]\+\+[^ ]\+ \+[^ ]\+\).*/\1/'

Uff...darauf muss man erstmal kommen...
Aber ich sehe richtig, dass COLUMNS dann auf die doppelte Breite der
Breite des tty's gesetzt wird?

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