-
Registrierter Benutzer
Standard Output Stream in Array legen (Perl)
Hallo!
Ich hab ne interessante Frage, vielleicht könnt ihr sie beantworten. Mir ist aufgefallen dass dpkg -l die Liste der installierten Pakete angepasst an die jeweilige Konsolengröße, dh. Spalten anpasst. Je größer desto weiter sind die Spalten auseinander. Die Paketnamen werden dann also nicht abgeschnitten.
Da das aber aber nicht mit dpkg -l >textdatei funktioniert wollte ich wissen wie den Standard Ausgabe Stream von dpkg in ein Array umleiten kann. Trennzeichen sind " " (Leerzeichen).
-
Re: Standard Output Stream in Array legen (Perl)
Original geschrieben von Rebell
Mir ist aufgefallen dass dpkg -l die Liste der installierten Pakete angepasst an die jeweilige Konsolengröße, dh. Spalten anpasst. Je größer desto weiter sind die Spalten auseinander. Die Paketnamen werden dann also nicht abgeschnitten.
Also das ist bei mir nicht so. Wenn ich dpkg -l aus der bash aufure, dann werden die Namen abgeschnitten. Wenn ich das xterm breiter mache, dann werden die nicht abgeschntten. Das gleiche wenn ich system("dpkg -l"); aus einem Perl Script aufrufe.
by, blackm
-
-
ich schätze das sind tabstops - benutz einfach ein skalar mit einer referenz auf ein array um die werte abzuspeichern.
wennde nur die installierten pakete willst, dann in etwa sowas
open (LIST, "|dpkg -l") || die "dpkg not installed\n";
@array = <LIST>;
close (LIST);
foreach (@array){
$_ =~ s/\n//g;
($status, $name, $version, $beschreibung) = split (/\t/,$_);
$status{$name} = $status; # wennde nur die ausgabe realisieren willst, das hier nicht
$version{$name} = $name; #
$beschreibung{$name} = $beschreibung; #
print "$status\t$name\t$version\t$beschreibung\n";
}
habe das jetzt nicht ausprobiert, aber sollte eigentlich gehen.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen