Sortier Problem

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von schwedenmann, 01.06.2009.

  1. #1 schwedenmann, 01.06.2009
    schwedenmann

    schwedenmann Foren Gott

    Dabei seit:
    18.11.2003
    Beiträge:
    2.635
    Zustimmungen:
    2
    Ort:
    Wegberg
    Hallo

    ich bin kein script kiddy, also Nachsicht.

    Folgendes Problem

    Ich möchte in einem Backupscript noch die installierten Paket (hier Debian-Sid) als separate Datei in einem lesbaren Format speichern.

    Im script funktionoert ja chroot nciht? oder doch, also hab ich mir die Datei

    /var/log/apt/extened_states perr
    cat /var/lib/apt/extended_states | sort | uniq | tail -n +4 > /share/sortliste.txt in eine lesbare alphabetische Reihenfolge gebracht.

    das ganze ist zwar für mcih braucbar, aber es solte doch besser gehen

    die Datei /var/lib/apt/apt/extended_states sieht so aus

    mit dem obigee Befehl ..cat ..
    wird eine alphabetische Liste mit den Einträgen
    Package: libklibc
    Auto-Installed: 1

    Package: klibc-utils
    Auto-Installed: 1

    Package: udev
    Auto-Installed: 0

    Package: libvolume-id0
    Auto-Installed: 1

    Package: libkeyutils1
    Auto-Installed: 1

    Package:udev
    ...


    erzeugt


    Gibt es eine Möglichkeit die obege Date (/var/lib/apt/extended_statesi so auszugeben

    Package:udev Autoinstalled:0
    Package: .... Autoinstalled 1

    wobei die Package-Spalte für die alphabetische Liste der primäre Faktor ist.

    mfg
    schwedenmann


    P.S.
    Sorry wenn die Frage in die dummy Schublade wandert, aber ich kann weder programmieren, noch nutze ich scripting, ich weiche dann eher auf Alternativen aus, z.B. zum Umbennnen von files nutze ich mmv, anstatt ein script mit Schleife.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 HeadCrash, 01.06.2009
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    Abend,

    versuchs mal hiermit:
    Code:
    awk '{ 
     if ($1 ~ "Package") { 
      printf ($1" "$2" "); getline; print($1" "$2) 
     } 
    }' /var/lib/apt/extended_statesi
    
    mfg
    HeadCrash
     
  4. #3 schwedenmann, 01.06.2009
    schwedenmann

    schwedenmann Foren Gott

    Dabei seit:
    18.11.2003
    Beiträge:
    2.635
    Zustimmungen:
    2
    Ort:
    Wegberg
    Sortieren

    Hallo


    ich hab befürchtet das es nicht so einfcah ist.

    Dein befehl bringt folgendes ergebnis
    Sory mein Fehler, es sollte so aussehen, der Name
    Package :xy sollte für die Sortierung primär sein!

    Package:libboost-programm-options1.38.0 Auto-Installed: 1
    Package libboost-regex1.38.0 Auto-Installed: 1


    Was mir auffällt, es fehlen alle Einträge mit
    Package... Auto-Installed:0

    mfg
    schwedenmann

    P.S. Jetzt weiß ich wenigstens das ich awk, oder gar perl für das Problem nutzen solte.
     
  5. #4 HeadCrash, 01.06.2009
    Zuletzt bearbeitet: 01.06.2009
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    Hmmm,

    bei dem Beispiel Textshnipsel bringt er die "Autoinstalled 0" mit

    Code:
    cat statesi | awk '{ if ($1 ~ "Package") {printf ($1" "$2" "); getline; print($1" "$2) }}' | sort
    
    Package: klibc-utils Auto-Installed: 1
    Package: libkeyutils1 Auto-Installed: 1
    Package: libvolume-id0 Auto-Installed: 1
    Package: udev Auto-Installed: 0
    


    Was die Sortierung angeht, hab ich irgendwie verpennt, sollte aber ein " | sort" am Ende erledigen.

    *EDIT*

    Welches awk verwendest du, debin kommt glaub ich per default nicht mit nem gawk daher.
     
  6. #5 floyd62, 03.06.2009
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Wenn die Eingabedatei "sauber ist, d.h. immer eine "Package", eine "Auto-Install" und eine Leerzeile aufeinander folgen, sollte ein einfaches
    Code:
    paste - - - </var/lib/apt/extended_states | sort
    
    schon ziemlich weit kommen. Alternativ könnte man auch mit einem kleinen sed-Skript, etwa
    Code:
    sed -e '/^$/d' -e '/Package/N;s/\n/ /' </var/lib/apt/extended_states | sort
    
    zunächst die Leerzeilen entfernen, dann die "Package"-Zeilen mit den jeweils darauffolgenden zusammenfassen.

    (In beiden Fällen erledigt "sort" dann die Sortierung, ggf. mit der Option "-u" auch noch das Eliminieren von Duplikaten.)

    Gruss, A.
     
Thema:

Sortier Problem

Die Seite wird geladen...

Sortier Problem - Ähnliche Themen

  1. Sortierungsproblem Bash

    Sortierungsproblem Bash: Moin, ich hab ein kleines Problem mit ner output Sortierung von nem Bashscript. Folgendes Script: makemenuetop() { PWD=($1) #makemenue $1...
  2. Ausgabe gruppieren und sortieren

    Ausgabe gruppieren und sortieren: Hallo zusammen, ich benötige mal Hilfe bei einer nicht ganz alltäglichen Aufgabe: Ich habe eine Ausgabe die so aussieht:...
  3. MP3-Tagger der auch "Sortierungs"-Tags erstellen kann

    MP3-Tagger der auch "Sortierungs"-Tags erstellen kann: Hallo, unter Windows habe ich das geniale Programm mp3tag genutzt, welches auch "Sortierungs-Tags" wie artistsort oder albumsort erstellen...
  4. Linux Mint & Evolution => Mails nach Datum sortieren

    Linux Mint & Evolution => Mails nach Datum sortieren: Hallo Leutz, ertmal hallo, bin hier neu :D. Bin mit nicht ganz sicher, ob das Theme hier rein passt, wab aber nichts besseres gefunden....
  5. [gelöst] Sortierung von Zeilen

    [gelöst] Sortierung von Zeilen: Hallo, ich habe eine Datei deren Zeilen neu sortiert werden sollen. In der Datei liegen zeilenweise Einträge in 4er Blöcken. 1 text1 2...