annotate cut.txt @ 2:3659d2502d61

Zwischenstand
author markus schnalke <meillo@marmaro.de>
date Sat, 02 May 2015 18:31:00 +0200
parents a3f18ccc3996
children 7cd149433a96
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
1 Das Werkzeugkaestle
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
2
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
3 #1: cut - cut out selected fields of each line of a file
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
4 ---------------------------------------------------------
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
5 markus schnalke, 2015-04
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
6
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
7
1
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
8 Cut ist ein klassisches Programm im Unix-Werkzeugkasten.
0
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
9 In keinem ordentlichen Tutorial zur Shellprogrammierung darf
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
10 es fehlen. Es ist ein schoenes Anschauungs- und Beispielobjekt
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
11 fuer's Shellscripting. Hier soll es portraitiert werden.
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
12
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
13
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
14 Die Funktionsbasis von cut sind urspruenglich zwei Modi, die
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
15 spaeter um einen dritten erweitert wurden. Entweder cut
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
16 schneidet bestimmte Zeichen aus den Zeilen der Eingabe oder
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
17 bestimmte durch Trennzeichen definierte Felder.
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
18
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
19 Der Zeichenmodus ist besonders praktisch um bestimmte Teile
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
20 von Kommandoausgaben zu extrahieren. Ein populaeres
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
21 Beispiel ist die Jahreszahl, die aus einer Datumsangabe
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
22 herausgeschnitten werden soll, insofern das Datumsformat
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
23 nicht frei gewaehlt werden kann. Ein anderer Anwendungsfall
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
24 ist die Extraktion bestimmter Zugriffsrecht. Hier z.B. die
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
25 Rechte fuer den Besitzer:
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
26
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
27 ls -l foo | cut -c 2-4
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
28
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
29 Oder die Schreibrechte fuer die Gruppe und alle anderen:
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
30
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
31 ls -l | cut -c 6,9
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
32
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
33 Damit ist die grundsaetzliche Verwendung von cut
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
34 demonstriert.
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
35
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
36 Die fuer POSIX wichtige Funktion von cut ist die Faehigkeit
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
37 lange Zeilen zu kuerzen.
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
38
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
39 cut -c -80
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
40
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
41 Dieser Befehl uebernimmt nur die ersten 80 Zeichen der
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
42 Eingabe in die Ausgabe. Der Rest der Zeilen wird einfach
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
43 abgeschnitten, koennte aber mit `cut -c 81-' extrahiert
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
44 werden.
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
45
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
46 Achtzig Zeichen erinnert unweigerlich an VT100-Terminals,
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
47 das 80 Zeichen pro Zeile darstellen kann. Geht es aber nicht
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
48 um die Darstellung von Zeichen sondern um ihre Speicherung,
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
49 dann ist `-c' nicht unbedingt die passende Option zur Kuerzung
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
50 langer Zeilen.
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
51
2
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
52 Frueher, als US-ASCII omnipraesente als Zeichensatz und -kodierung
0
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
53 war, war jedes Zeichen durch genau ein Byte kodiert und somit
2
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
54 selektierte `cut -c' sowohl nach Ausgabezeichen als auch nach
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
55 Bytes. Mit dem Aufkommen von Multibyte-Kodierungen (wie UTF-8)
0
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
56 musste man sich von dieser Annahme loesen. In diesem Zug
2
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
57 bekam cut mit POSIX.2-1992 die Option `-b'. Diese selektiert
1
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
58 Bytes. Will man also nur die ersten maximal 20 Bytes vor dem
0
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
59 Newline-Zeichen stehen haben (und den Rest stillschweigend
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
60 ignorieren), dann macht man das mit:
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
61
1
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
62 cut -b -20
0
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
63
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
64
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
65 Neben dem Zeichen- bzw. Byte-Modus bietet cut noch den
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
66 interessanteren Feld-Modus, den man mit `-f' einleitet. Mit ihm
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
67 koennen Felder ausgewaehlt werden. Das Trennzeichen -- per
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
68 Default der Tab -- kann mit `-d' geaendert werden.
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
69
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
70 Der typische Anwendungsfall fuer den Feld-Modus. Ist die
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
71 Extraktion von Information aus der passwd-Datei. So z.B. der
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
72 Username, die User-ID und das Homeverzeichnis:
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
73
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
74 cut -d: -f1,3,6 /etc/passwd
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
75
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
76 (Die Argumente fuer die Optionen koennen bei cut uebrigens
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
77 direkt angehaengt oder mit Whitespace abgetrennt folgen.)
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
78
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
79
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
80 Dieser Feld-Modus ist fuer einfache tabellarische Dateien
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
81 (wie eben die passwd) gut geeignet, kommt aber schnell an
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
82 seine Grenzen. Gerade der uebliche Fall, dass an Whitespace
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
83 in Felder geteilt werden soll, wird damit nicht abgedeckt.
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
84 Der Delimiter kann nur genau ein Zeichen sein. Es kann also
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
85 nicht sowohl an Leerzeichen als auch an Tabs getrennt werden.
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
86 Auch unterteilt cut an jedem Trennzeichen. Zwei aneinander
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
87 stehende Trennzeichen fuehren zu einem leeren Feld. Solches
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
88 Verhalten ist fuer Whitespace-getrennte Felder unangemessen.
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
89 Diese Aufgaben deckt aber zum Glueck awk ab, so dass die
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
90 Alternative zur Hand ist.
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
91
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
92 Awk hat eine weitere Funktion, die
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
93 cut missen laesst: Das Tauschen der Feld-Reihenfolge.
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
94
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
95
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
96
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
97
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
98
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
99 Geschichtliches
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
100
1
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
101 Cut erblickte 1982 als Teil von UNIX System III das Licht der
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
102 oeffentlichen Welt. In den Quellen von System III findet sich
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
103 cut.c mit dem Zeitstempel 1980-04-11.
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
104 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=SysIII/usr/src/cmd
0
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
105
1
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
106 Aber werfen wir doch einen Blick auf die BSD-Linie: Dort ist mein
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
107 fruehester Fund ein cut.c mit dem Datum 1986-11-07 im Code der
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
108 Spezialversion 4.3BSD-UWisc, die im Januar 1987 veroeffentlicht
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
109 .
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
110 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-UWisc/src/usr.bin/cut
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
111 Im bekannteren 4.3BSD-Tahoe (1988) taucht es nicht auf. Im
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
112 darauf folgenden 4.3BSD-Reno (1990) gibt es aber wiederum ein
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
113 cut, das von Adam S. Moskowitz und Marciano Pitargue geschrieben
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
114 und 1989 in BSD aufgenommen worden ist.
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
115 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-Reno/src/usr.bin/cut
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
116 Die Manpage
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
117 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-Reno/src/usr.bin/cut/cut.1
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
118 erwaehnt bereits die angestrebte aber noch vermutete Konformitaet
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
119 zu POSIX.2. Man muss wissen, dass POSIX.2 erst im September
2
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
120 1992 veroeffentlicht wurde. Die Aussage basiert also auf dem
1
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
121 Zwischenstand nach zweieinhalb der insgesamt fuenf Jahre, die
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
122 die Arbeiten am Standard benoetigten.
0
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
123
1
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
124 Trotz all dieser Jahreszahlen aus den 80er Jahren gehoert cut
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
125 aus Sicht des urspruenglichen Unix zu den juengeren Tools.
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
126 Wenn cut auch ein Jahrzehnt aelter als Linux, der Kernel, ist,
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
127 so existierte Unix wiederum schon ein ganzes Jahrzehnt bevor cut
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
128 das erste Mal auftauchte. Insbesondere war cut nicht in Version 7
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
129 Unix vorhanden, das die Ausgangsbasis aller modernen Unix-Systeme
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
130 darstellt. (Das weit komplexere sed z.B. war dort schon
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
131 vertreten.)
0
5efb052a0d9e Zwischenstand
markus schnalke <meillo@marmaro.de>
parents:
diff changeset
132
1
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
133 Nichts desto trotz bewaehrte sich cut. Es wurde in andere
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
134 Unix Varianten uebernommen und ist heutzutage ueberall
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
135 anzutreffen.
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
136
2
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
137 Mit POSIX.2 im Jahre 1992 wurde cut zum ersten Mal in der
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
138 heutigen Form (mit -b) standardisiert. In der urspruenglichen
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
139 Variante (ohne -b) taucht es u.a. 1985 in der System V
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
140 Interface Definition, einer wichtigen formalen Beschreibung
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
141 von UNIX System V, auf.
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
142
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
143
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
144 Beschreibungen
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
145
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
146 Interessant ist ein Vergleich der Kurzbeschreibungen von cut,
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
147 wie man sie in der Titelzeile der Manpages oder manchmal auch
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
148 am Anfang der Quellcodedatei findet.
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
149
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
150 System III cut out selected fields of each line of a file
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
151 System III code cut and paste columns of a table (projection of a relation)
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
152 System V cut out selected fields of each line of a file
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
153 SVID cut out selected fields of each line of a file
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
154 HP-UX cut out (extract) selected fields of each line of a file
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
155
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
156 4.3BSD-UWisc cut and paste columns of a table (projection of a relation)
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
157 4.3BSD-Reno select portions of each line of a file
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
158 NetBSD select portions of each line of a file
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
159 FreeBSD 1.0 select portions of each line of a file
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
160 FreeBSD >2007 cut out selected portions of each line of a file
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
161 SunOS 4.1.3 remove selected fields from each line of a file
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
162 SunOS 5.5.1 cut out selected fields of each line of a file
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
163
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
164 POSIX cut out selected fields of each line of a file
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
165
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
166 GNU coreutils remove sections from each line of files
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
167
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
168 Minix select out columns of a file
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
169
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
170 Version 8 Unix rearrange columns of data
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
171 ``Unix Reader'' rearrange columns of text
1
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
172
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
173
a3f18ccc3996 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 0
diff changeset
174
2
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
175
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
176
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
177
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
178
3659d2502d61 Zwischenstand
markus schnalke <meillo@marmaro.de>
parents: 1
diff changeset
179