Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Standard Output Stream in Array legen (Perl)

  1. #1
    Registrierter Benutzer Avatar von Rebell
    Registriert seit
    10.07.2002
    Ort
    Dresden
    Beiträge
    62

    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).
    to be famous is so nice
    http://get-mike.de
    M:ke

  2. #2
    Registrierter Benutzer
    Registriert seit
    04.08.2002
    Ort
    Berlin
    Beiträge
    25

    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

  3. #3
    Registrierter Benutzer
    Registriert seit
    30.12.2001
    Beiträge
    444
    Hat mich auch schon mal gewundert:

    http://www.linuxforen.de/forums/show...threadid=43207

    Gruß
    Tobias

  4. #4
    Registrierter Benutzer
    Registriert seit
    22.09.2002
    Beiträge
    32
    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.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •