docs/cut

changeset 1:a3f18ccc3996

Zwischenstand
author markus schnalke <meillo@marmaro.de>
date Sat, 02 May 2015 13:45:00 +0200
parents 5efb052a0d9e
children 3659d2502d61
files cut.txt
diffstat 1 files changed, 45 insertions(+), 11 deletions(-) [+]
line diff
     1.1 --- a/cut.txt	Sat May 02 09:54:00 2015 +0200
     1.2 +++ b/cut.txt	Sat May 02 13:45:00 2015 +0200
     1.3 @@ -5,7 +5,7 @@
     1.4  markus schnalke, 2015-04
     1.5  
     1.6  
     1.7 -Cut ist eines der klassischen Programme im Unix-Werkzeugkasten.
     1.8 +Cut ist ein klassisches Programm im Unix-Werkzeugkasten.
     1.9  In keinem ordentlichen Tutorial zur Shellprogrammierung darf
    1.10  es fehlen. Es ist ein schoenes Anschauungs- und Beispielobjekt
    1.11  fuer's Shellscripting. Hier soll es portraitiert werden.
    1.12 @@ -49,17 +49,17 @@
    1.13  dann ist `-c' nicht unbedingt die passende Option zur Kuerzung
    1.14  langer Zeilen.
    1.15  
    1.16 -Frueher als US-ASCII das omnipraesente Charset und Encoding
    1.17 +Frueher als US-ASCII omnipraesente als Zeichensatz und -kodierung
    1.18  war, war jedes Zeichen durch genau ein Byte kodiert und somit
    1.19  beschnitt `cut -c' sowohl nach Ausgabezeichen als auch nach
    1.20 -Datenmenge. Als aber Multibyte-Kodierungen, wie UTF-8, aufkamen,
    1.21 +Datenmenge. Als aber Multibyte-Kodierungen (z.B. UTF-8) aufkamen,
    1.22  musste man sich von dieser Annahme loesen. In diesem Zug
    1.23  bekam cut mit POSIX.2 die Option `-b'. Diese selektiert nach
    1.24 -Bytes. Will man also nur die ersten maximal 63 Bytes vor dem
    1.25 +Bytes. Will man also nur die ersten maximal 20 Bytes vor dem
    1.26  Newline-Zeichen stehen haben (und den Rest stillschweigend
    1.27  ignorieren), dann macht man das mit:
    1.28  
    1.29 -	cut -b -63
    1.30 +	cut -b -20
    1.31  
    1.32  
    1.33  Neben dem Zeichen- bzw. Byte-Modus bietet cut noch den
    1.34 @@ -98,12 +98,46 @@
    1.35  
    1.36  Geschichtliches
    1.37  
    1.38 -Cut erblickte in XXX das Licht der Welt. Im Verleich zu
    1.39 -XXX stiess es erst relativ spaet XXX
    1.40 +Cut erblickte 1982 als Teil von UNIX System III das Licht der
    1.41 +oeffentlichen Welt. In den Quellen von System III findet sich
    1.42 +cut.c mit dem Zeitstempel 1980-04-11.
    1.43 +[ http://minnie.tuhs.org/cgi-bin/utree.pl?file=SysIII/usr/src/cmd
    1.44  
    1.45 -XXX ueber XXX floss
    1.46 -es in den XXX Standard ein, wo es seither residiert.
    1.47 +Aber werfen wir doch einen Blick auf die BSD-Linie: Dort ist mein
    1.48 +fruehester Fund ein cut.c mit dem Datum 1986-11-07 im Code der
    1.49 +Spezialversion 4.3BSD-UWisc, die im Januar 1987 veroeffentlicht
    1.50 +.
    1.51 +[ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-UWisc/src/usr.bin/cut
    1.52 +Im bekannteren 4.3BSD-Tahoe (1988) taucht es nicht auf. Im
    1.53 +darauf folgenden 4.3BSD-Reno (1990) gibt es aber wiederum ein
    1.54 +cut, das von Adam S. Moskowitz und Marciano Pitargue geschrieben
    1.55 +und 1989 in BSD aufgenommen worden ist.
    1.56 +[ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-Reno/src/usr.bin/cut
    1.57 +Die Manpage
    1.58 +[ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-Reno/src/usr.bin/cut/cut.1
    1.59 +erwaehnt bereits die angestrebte aber noch vermutete Konformitaet
    1.60 +zu POSIX.2. Man muss wissen, dass POSIX.2 erst im September
    1.61 +1992 veroeffentlicht wird. Die Aussage basiert also auf dem
    1.62 +Zwischenstand nach zweieinhalb der insgesamt fuenf Jahre, die
    1.63 +die Arbeiten am Standard benoetigten.
    1.64  
    1.65 -Standardisierung
    1.66 +Trotz all dieser Jahreszahlen aus den 80er Jahren gehoert cut
    1.67 +aus Sicht des urspruenglichen Unix zu den juengeren Tools.
    1.68 +Wenn cut auch ein Jahrzehnt aelter als Linux, der Kernel, ist,
    1.69 +so existierte Unix wiederum schon ein ganzes Jahrzehnt bevor cut
    1.70 +das erste Mal auftauchte. Insbesondere war cut nicht in Version 7
    1.71 +Unix vorhanden, das die Ausgangsbasis aller modernen Unix-Systeme
    1.72 +darstellt. (Das weit komplexere sed z.B. war dort schon
    1.73 +vertreten.)
    1.74  
    1.75 -Verbreitung
    1.76 +Nichts desto trotz bewaehrte sich cut. Es wurde in andere
    1.77 +Unix Varianten uebernommen und ist heutzutage ueberall
    1.78 +anzutreffen.
    1.79 +
    1.80 +Die Beschreibung von cut in POSIX.2 1992 ist sicher wichtig,
    1.81 +zuvor war cut aber schon 1987 im X/OPEN Portability Guide,
    1.82 +Issue 2, Vol. 1, und davor sogar schon 1985 in der System V
    1.83 +Interface Definition beschrieben worden.
    1.84 +
    1.85 +
    1.86 +