Mercurial > docs > cut
comparison cut.txt @ 12:9f17c512fb5c
Zwischenstand
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Mon, 11 May 2015 17:47:00 +0200 |
parents | 04a8a33fc48a |
children | bf5e41260f89 |
comparison
equal
deleted
inserted
replaced
11:04a8a33fc48a | 12:9f17c512fb5c |
---|---|
107 Faellen. | 107 Faellen. |
108 | 108 |
109 Awk bietet noch eine weitere Funktion, die cut missen | 109 Awk bietet noch eine weitere Funktion, die cut missen |
110 laesst: Das Tauschen der Feld-Reihenfolge in der Ausgabe. Bei | 110 laesst: Das Tauschen der Feld-Reihenfolge in der Ausgabe. Bei |
111 cut ist die Reihenfolge der Feldauswahlangabe irrelevant; ein | 111 cut ist die Reihenfolge der Feldauswahlangabe irrelevant; ein |
112 Feld kann selbst mehrfach angegeben werden. So gibt der Aufruf | 112 Feld kann selbst mehrfach angegeben werden. |
113 | |
114 XXX 4.3BSD-Reno + *BSDs | |
115 * This parser is less restrictive than the Draft 9 POSIX spec. | |
116 * POSIX doesn't allow lists that aren't in increasing order or | |
117 * overlapping lists. We also handle "-3-5" although there's no | |
118 * real reason too. | |
119 | |
120 So gibt der Aufruf | |
113 von `cut -c 5-8,1,4-6' die Zeichen Nummer 1, 4, 5, 6, 7 und 8 | 121 von `cut -c 5-8,1,4-6' die Zeichen Nummer 1, 4, 5, 6, 7 und 8 |
114 in genau dieser Reihenfolge aus. Die Auswahl entspricht damit | 122 in genau dieser Reihenfolge aus. Die Auswahl entspricht damit |
115 der Mengenlehre in der Mathematik: Jedes angegebene Feld wird | 123 der Mengenlehre in der Mathematik: Jedes angegebene Feld wird |
116 Teil der Ergebnismenge. Die Felder der Ergebnismenge sind | 124 Teil der Ergebnismenge. Die Felder der Ergebnismenge sind |
117 dabei immer gleich geordnet wie in der Eingabe. Um die Worte | 125 dabei immer gleich geordnet wie in der Eingabe. Um die Worte |
170 wurde folglich anhand von Arbeitsversionen des Standards | 178 wurde folglich anhand von Arbeitsversionen des Standards |
171 implementiert. Zweieinhalb Jahre Arbeit war immerhin schon in | 179 implementiert. Zweieinhalb Jahre Arbeit war immerhin schon in |
172 den Standardisierungsprozess geflossen; bis zur | 180 den Standardisierungsprozess geflossen; bis zur |
173 Fertigstellung sollte es aber noch weitere zwei Jahre dauern. | 181 Fertigstellung sollte es aber noch weitere zwei Jahre dauern. |
174 | 182 |
175 Das cut der GNU Coreutils enthaelt einen Copyrightvermerk von | 183 Schaut man sich die SCCS-IDs (die vom damaligen |
176 David M. Ihnat aus dem Jahr 1984. | 184 Versionskontrollsystem eingefuegt wurden) in den BSD-Quellen an, |
177 | 185 dann findet man dort Versionsnummern, die die Entstehung |
178 Trotz all dieser Jahreszahlen aus den 80er Jahren gehoert cut, | 186 dokumentieren: |
187 | |
188 4.3BSD-UWisc "@(#)cut.c 1.3"; | |
189 4.3BSD-Reno "@(#)cut.c 5.3 (Berkeley) 6/24/90"; | |
190 NetBSD "@(#)cut.c 5.4 (Berkeley) 10/30/90"; | |
191 FreeBSD "@(#)cut.c 8.1 (Berkeley) 6/6/93"; | |
192 | |
193 Die neueren BSD-Versionen enthalten zwar weiterhin eine SCCS-ID, diese | |
194 ist aber bei Version "8.3 (Berkeley) 5/4/95" stehen geblieben. Danach | |
195 wurde scheinbar von SCCS auf ein anderes | |
196 Versionskontrollsystem gewechselt. | |
197 XXX | |
198 | |
199 Das cut der GNU Coreutils enthaelt folgenden Copyrightvermerk: | |
200 | |
201 Copyright (C) 1997-2015 Free Software Foundation, Inc. | |
202 Copyright (C) 1984 David M. Ihnat | |
203 | |
204 Der Code hat also ziemlich alte Urspruenge. Wie aus weiteren | |
205 Kommentaren zu entnehmen ist, wurde der Code zuerst von David | |
206 MacKenzie und spaeter von Jim Meyering ueberarbeitet. Letzterer | |
207 hat den Code 1992 auch ins Versionkontrollsystem eingestellt. | |
208 Weshalb die Jahre zwischen 1992 und 1997 nicht im Copyright-Vermerk | |
209 auftauchen, ist unklar. | |
210 | |
211 Trotz der vielen Jahreszahlen aus den 80er Jahren gehoert cut, | |
179 aus Sicht des urspruenglichen Unix, zu den juengeren Tools. | 212 aus Sicht des urspruenglichen Unix, zu den juengeren Tools. |
180 Wenn cut auch ein Jahrzehnt aelter als Linux, der Kernel, ist, | 213 Wenn cut auch ein Jahrzehnt aelter als Linux, der Kernel, ist, |
181 so war Unix doch schon ueber zehn Jahre alt, als cut das | 214 so war Unix doch schon ueber zehn Jahre alt, als cut das |
182 erste Mal auftauchte. Insbesondere gehoerte cut auch noch nicht | 215 erste Mal auftauchte. Insbesondere gehoerte cut auch noch nicht |
183 zu Version 7 Unix, das die Ausgangsbasis aller modernen | 216 zu Version 7 Unix, das die Ausgangsbasis aller modernen |
355 damit in einer eigenen Funktion umgesetzt. Nur bei der fruehen | 388 damit in einer eigenen Funktion umgesetzt. Nur bei der fruehen |
356 System III-Implementierung (und seiner 4.3BSD-UWisc-Variante) | 389 System III-Implementierung (und seiner 4.3BSD-UWisc-Variante) |
357 wird nichts aus der main-Funktion ausgelagert, ausser den | 390 wird nichts aus der main-Funktion ausgelagert, ausser den |
358 Fehlerausgaben. | 391 Fehlerausgaben. |
359 | 392 |
360 Bei System III ist die Anzahl der moeglichen Felder und damit auch | 393 Bei System III ist die Anzahl der moeglichen Felder und ebenso |
361 die Zeilenlaenge auf 512 begrenzt. | 394 die Zeilenlaenge auf 512 begrenzt. 4.3BSD-Reno und die BSDs |
362 | 395 der 90er Jahre haben ebenfalls fixe Grenzen (_BSD_LINE_MAX |
363 Bei 4.3BSD-Reno liegt die Grenze bei _BSD_LINE_MAX | 396 bzw. _POSIX2_LINE_MAX). Bei modernen FreeBSDs, NetBSDs, bei |
364 | 397 allen GNU-Implementierungen und bei Heirloom kann sowohl |
365 NetBSD 1993 _POSIX2_LINE_MAX | 398 die Felderanzahl als auch die maximale Zeilenlaenge beliebig |
366 | 399 gross werden; der Speicher dafür wird dynamisch alloziiert. |
367 NetBSD 2012 dyn alloc | 400 OpenBSD ist ein Hybrid aus fixer Maximalzahl an Feldern, aber |
368 | 401 beliebiger Zeilenlaenge (fgetln). XXX |
369 | 402 |
370 4.3BSD-Reno | |
371 * set a byte in the positions array to indicate if a field or | |
372 * column is to be selected; use +1, it's 1-based, not 0-based. | |
373 * This parser is less restrictive than the Draft 9 POSIX spec. | |
374 * POSIX doesn't allow lists that aren't in increasing order or | |
375 * overlapping lists. We also handle "-3-5" although there's no | |
376 * real reason too. | |
377 | |
378 | |
379 | |
380 Schaut man sich die SCCS-IDs (die vom damaligen | |
381 Versionskontrollsystem eingefuegt wurden) in den BSD-Quellen an, | |
382 dann findet man dort Versionsnummern, die die Entwicklung | |
383 dokumentieren: | |
384 | |
385 4.3bsd-uwisc "@(#)cut.c 1.3"; | |
386 4.3bsd-reno "@(#)cut.c 5.3 (Berkeley) 6/24/90"; | |
387 netbsd "@(#)cut.c 5.4 (Berkeley) 10/30/90"; | |
388 freebsd "@(#)cut.c 8.1 (Berkeley) 6/6/93"; | |
389 | |
390 Die neueren BSD-Versionen enthalten zwar weiterhin eine SCCS-ID, diese | |
391 ist aber bei Version "8.3 (Berkeley) 5/4/95" stehen geblieben. Danach | |
392 wurde scheinbar von SCCS auf ein anderes | |
393 Versionskontrollsystem gewechselt. | |
394 XXX | |
395 | |
396 Bei GNU befindet sich folgender Copyright-Vermerk im Code: | |
397 | |
398 Copyright (C) 1997-2015 Free Software Foundation, Inc. | |
399 Copyright (C) 1984 David M. Ihnat | |
400 | |
401 Der Code hat also ziemlich alte Urspruenge. Wie aus weiteren | |
402 Kommentaren zu entnehmen ist, wurde der Code zuerst von David | |
403 MacKenzie und spaeter von Jim Meyering ueberarbeitet. Letzterer | |
404 hat den Code 1992 auch ins Versionkontrollsystem eingestellt. | |
405 Weshalb die Jahre zwischen 1992 und 1997 nicht im Copyright-Vermerk | |
406 auftauchen, ist unklar. | |
407 | 403 |
408 | 404 |
409 Beschreibungen | 405 Beschreibungen |
410 | 406 |
411 Interessant ist auch ein Vergleich der Kurzbeschreibungen von | 407 Interessant ist auch ein Vergleich der Kurzbeschreibungen von |