Springe zum Hauptinhalt

Bourne
next up previous contents
Next: Primitive Turbo-C-Variante Up: Beispiele für Shell-Programmierung Previous: Selektives Kopieren

Varianten des Sieb-Filters

  • Schreiben Sie einen Filter namens sieb, der nur jede zweite Zeile von stdin -> stdout kopiert.
    #!/bin/sh
    #
    # Filter sieb (variante 0)
    #
    # Aufruf: sieb0
    #
    a=1
    while read n
    do
        a=`expr $a '*' -1`
        if test $a -gt 0
        then
            echo $n
        fi
    done
    
  • Problem: In den durchgelassenen Zeilen gehen Leerzeichen verloren, wenn mehrere zusammenhängende Leerzeichen auftreten (read-Kommando)
  • Diese Filter ist zu verallgemeinern. Beim Aufruf sieba +n soll jede n-te Zeile kopiert werden. Beim Aufruf sieba -n soll jede n-te Zeile ignoriert werden. Für n sollen die Werte 2 bis 9 zugelassen sein; dies ist zu überprüfen!
    #!/bin/sh
    #
    # Filter sieba
    #
    # Aufruf: sieba +n    kopieren jeder n-ten Zeile
    #         sieba -n    ignorieren jeder n-ten Zeile
    #
    
    if test $# -ne 1
    then
        echo "Benutze:   sieba +n  oder  sieba -n"
        echo "1 < n < 10"
        exit 1
    fi
    x=`echo "$1" | cut -c1`
    case $x in
        '-' ) : ;;
        '+' ) : ;;
        *   ) echo "Benutze:   sieba +n  oder  sieba -n"
              echo "1 < n < 10"
              exit 1
              ;;
    esac
    x=`echo "$1" | cut -c2`
    case $x in
        [2-9] ) : ;;
        *   ) echo "Benutze:   sieba +n  oder  sieba -n"
              echo "1 < n < 10"
              exit 1
              ;;
    esac
            
    a=`echo "$1" | cut -c2`
    if test "$1" -gt 0
    then
        d=1
    else
        d=0
    fi
    r=$a
    while read n
    do
        a=`expr $a '-' 1`
        if test $d -eq 0
        then
            if test $a -eq 0 
            then
                a=$r
                continue
            else
                echo $n
                continue
            fi
        fi
        if test $a -eq 0 
        then
            echo $n
            a=$r
        fi
    done
    


  • Eine junge Frau sitzt am Computer.

    Rund um die Uhr die Hausarbeit abschließen

    Einfach dranbleiben: Universitätsbibliothek der TU Chemnitz hat unmittelbar im Anschluss an die „Lange Nacht der aufgeschobenen Hausarbeiten“ am 5. Februar 2026 erstmals noch bis 14. Februar gegen Mitternacht 24/7 geöffnet …

  • Logo vor einer Gebäudeansicht

    TU Chemnitz im Ranking von StudyCheck.de auf Platz 4 der beliebtesten Universitäten in Deutschland

    Ein „StudyCheck Award 2026“ mit dem Zertifikat „Top Universität 2026“ geht dank der sehr positiven Bewertung ihrer Studierenden sowie Absolventinnen und Absolventen an die TU Chemnitz – Zudem ist die TUC aktuell die zweitbeste staatliche Universität im Live-Ranking „Digital Readiness“ …

  • Mehrere Personen spielen Tischtennis.

    Wenn der Deutschkurs in die Werkhalle verlagert wird

    Tischtennisturnier krönte Premiere des Sprach- und Praxisprojekts „Deutsch für Ingenieure“ – Internationale Studierende präsentierten ihre selbstgebauten Schläger und bewiesen dabei ihre neugewonnene Sprachkompetenz …

  • Blick auf ein schiff, das neben einem Gebäude ankert.

    Spurensuche in der Stadt

    Wie Migration Stadtbilder und Lebensgeschichten prägt, zeigt das Deutsche Auswandererhaus in Bremerhaven bis zum 1. März 2026 – Ausstellung „Aufbrüche – Umbrüche“ verknüpft Bremerhaven und Chemnitz in einem Dialog über Wandel, Erinnerung und Identität – Professur Humangeographie mit Schwerpunkt Europäische Migrationsforschung der TU Chemnitz wirkte an der Konzeptentwicklung mit …