Shell Script sortierung und zählung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Shell Script sortierung und zählung

    Hi @all

    ich hab ein problem bei dem ich nicht weiterkomme. Und zwar muss ich ein Shell script erstellen, dass mir von einem bestimmten Befehl die anzahl der gleichen einträge zu einem bestimmten Zeichen angibt. (Der satz ist ein bisschen komplizeiert ^^)

    Zur genauen erläuterung:

    Ich habe mit einem Befehel ( lpstat -o) folgende Ausgabe:

    Quellcode

    1. FilePostScript-10522 123 4096 Mon 03 Aug 2009 09:59:31 AM CEST
    2. FilePostScript-10532 23132 3072 Mon 03 Aug 2009 04:27:45 PM CEST
    3. FilePostScript-10847 23123 2531328 Fri 21 Aug 2009 03:20:26 PM CEST
    4. g164-10770 23123 737280 Mon 17 Aug 2009 01:58:06 PM CEST
    5. g164-10999 23123 46080 Wed 09 Sep 2009 09:09:07 AM CEST
    6. g1e2-10238 23123 1703936 Fri 17 Jul 2009 08:58:21 AM CEST
    7. g606pd-10645 23123 176128 Thu 06 Aug 2009 06:19:06 PM CEST
    8. psa4lab-10250 23123 78848 Fri 17 Jul 2009 12:24:26 PM CEST
    9. psa4lab-10273 23123 86016 Mon 20 Jul 2009 11:57:48 AM CEST
    10. psa4lab-10481 23123 266240 Wed 29 Jul 2009 03:46:09 PM CEST
    11. psa4lab-10813 23123 326656 Wed 19 Aug 2009 03:17:54 PM CEST
    12. psa4lab-10852 23123 6144 Mon 24 Aug 2009 09:31:39 AM CEST
    13. psa4lab-10917 23123 123904 Wed 26 Aug 2009 05:42:56 PM CEST
    14. psa4lab-10918 23123 71680 Wed 26 Aug 2009 06:40:05 PM CEST
    Alles anzeigen


    Jetzt soll ich die verschiedenen Druckjobs die an einen drucker gesendet werden zählen.
    Der Druckername sind die Buchstaben / Zahlen bis zum ersten - (Minuszeichen).

    Als Beispiel wurden 7 Jobs an den Drucker psa4lab geschickt.

    Kann mir da jemand helfen wie ich das am besten bewerkstelligen kann? Es muss nicht unbedingt eine Komplettlösung sein.
    Erste Ansätze würden auch schon reichen.

    Mfg
    Chr.Raible
  • Hi @all

    danke für eure Hilfe. habs nun mit folgendem Konstrukt hinbekommen.

    Sollte es eine bessere Lösung geben, dann postet Sie bitte.

    Quellcode

    1. NR_OF_JOBS=`lpstat -o | wc -l`
    2. if [ $NR_OF_JOBS -gt 10 ]
    3. then
    4. #Count the jobs of uniq printer
    5. TOP=`lpstat -o | cut -d"-" -f1 | sort | uniq -c | sort -r`
    6. sendEmail
    7. test
    8. fi


    Das ganze gibt mir jetzt die Anzahl und die Namen der Drucker geordnet nach anzahl der Jobs Absteigend aus:

    Quellcode

    1. Toplist:
    2. 7 psa4lab
    3. 3 FilePostScript
    4. 2 g164
    5. 1 psa4pdcad
    6. 1 g606pd
    7. 1 g1e2


    Danke für eure Hilfe :)

    Mfg
    Chr.Raible

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Chr.Raible ()