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 +