docs/cut
changeset 17:08f539a5445d
Ueberarbeitung der Formulierungen, hauptsaechlich
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Wed, 13 May 2015 07:18:16 +0200 |
parents | 4d8196c836d8 |
children | b1e7b45fb3c8 |
files | cut.txt |
diffstat | 1 files changed, 96 insertions(+), 93 deletions(-) [+] |
line diff
1.1 --- a/cut.txt Tue May 12 22:49:21 2015 +0200 1.2 +++ b/cut.txt Wed May 13 07:18:16 2015 +0200 1.3 @@ -47,8 +47,8 @@ 1.4 1.5 Geht es aber nicht um die Darstellung von Zeichen, sondern um 1.6 ihre Speicherung, dann ist `-c' nicht unbedingt geeignet. 1.7 -Frueher, als US-ASCII als Zeichensatz und -kodierung 1.8 -noch omnipraesent war, wurde jedes Zeichen mit genau einem 1.9 +Frueher, als US-ASCII noch die omnipraesente Zeichenkodierung 1.10 +war, wurde jedes Zeichen mit genau einem 1.11 Byte gespeichert. Somit selektierte `cut -c' gleichermassen 1.12 sowohl Ausgabezeichen als auch Bytes. Mit dem Aufkommen von 1.13 Multibyte-Kodierungen (wie UTF-8) musste man sich jedoch von 1.14 @@ -65,45 +65,45 @@ 1.15 Textdateien mit begrenzter Zeilenlaenge erzeugen kann. 1.16 [ http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cut.html#tag_20_28_17 1.17 1.18 -Auch wenn der Bytemodus neu eingefuehrt wurde, so sollte er 1.19 -sich doch nur so verhalten wie der alte Zeichenmodus normalerweise 1.20 -implementiert war. Beim Zeichenmodus aber wurde durch POSIX.2 1.21 -eine andere Implementierungsweise gefordert. Das Problem war 1.22 -also nicht, den neuen Bytemodus zu implementieren, sondern 1.23 +Wenn auch der Bytemodus neu eingefuehrt worden war, so sollte 1.24 +er sich doch nur so verhalten wie der alte Zeichenmodus 1.25 +normalerweise schon implementiert war. Beim Zeichenmodus aber 1.26 +wurde eine neue Implementierungsweise gefordert. Das Problem 1.27 +war also nicht, den neuen Bytemodus zu implementieren, sondern 1.28 den Zeichenmodus neu zu implementieren. 1.29 1.30 -Neben dem Zeichen- und Byte-Modus bietet cut noch den 1.31 -Feld-Modus, den man mit `-f' einleitet. Mit ihm 1.32 +Neben dem Zeichen- und Bytemodus bietet cut noch den 1.33 +Feldmodus, den man mit `-f' einleitet. Mit ihm 1.34 koennen Felder ausgewaehlt werden. Das Trennzeichen (per 1.35 Default der Tab) kann mit `-d' geaendert werden. 1.36 1.37 -Der typische Anwendungsfall fuer cut im Feld-Modus ist die 1.38 +Der typische Anwendungsfall fuer cut im Feldmodus ist die 1.39 Auswahl von Information aus der passwd-Datei. So z.B. der 1.40 -Benutzername, seine ID und das Homeverzeichnis: 1.41 +Benutzername und seine ID: 1.42 1.43 - $ cut -d: -f1,3,6 /etc/passwd 1.44 - root:0:/root 1.45 - bin:1:/bin 1.46 - daemon:2:/sbin 1.47 - mail:8:/var/spool/mail 1.48 + $ cut -d: -f1,3 /etc/passwd 1.49 + root:0 1.50 + bin:1 1.51 + daemon:2 1.52 + mail:8 1.53 ... 1.54 1.55 (Die Argumente fuer die Optionen koennen bei cut uebrigens 1.56 mit Whitespace abgetrennt oder direkt angehaengt folgen.) 1.57 1.58 -Dieser Feld-Modus ist fuer einfache tabellarische Dateien, 1.59 +Dieser Feldmodus ist fuer einfache tabellarische Dateien, 1.60 wie eben die passwd, gut geeignet. Er kommt aber schnell an 1.61 seine Grenzen. Gerade der haeufige Fall, dass an Whitespace 1.62 in Felder geteilt werden soll, wird damit nicht abgedeckt. 1.63 -Der Delimiter kann nur genau ein Zeichen sein. Es kann also 1.64 -nicht sowohl an Leerzeichen als auch an Tabs getrennt werden. 1.65 -Auch unterteilt cut an jedem Trennzeichen. Zwei aneinander 1.66 +Der Delimiter kann bei cut nur genau ein Zeichen sein. Es kann 1.67 +also nicht sowohl an Leerzeichen als auch an Tabs aufgetrennt 1.68 +werden. Auch unterteilt cut an jedem Trennzeichen. Zwei aneinander 1.69 stehende Trennzeichen fuehren zu einem leeren Feld. Dieses 1.70 Verhalten widerspricht den Erwartungen, die man an die 1.71 Verarbeitung einer Datei mit Whitespace-getrennten Feldern 1.72 hat. Manche Implementierungen von cut, z.B. die von FreeBSD, 1.73 -haben aber Erweiterungen, die das gewuenschte Verhalten fuer 1.74 -Whitespace-getrennte Felder bieten. Ansonsten, d.h. wenn 1.75 +haben deshalb Erweiterungen, die das gewuenschte Verhalten 1.76 +fuer Whitespace-getrennte Felder bieten. Ansonsten, d.h. wenn 1.77 man portabel bleiben will, verwendet man awk in diesen 1.78 Faellen. 1.79 1.80 @@ -140,34 +140,32 @@ 1.81 Zeitstempel 1980-04-11. 1.82 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=SysIII/usr/src/cmd 1.83 Das ist die aelteste Manifestation des Programms, die ich 1.84 -aufstoebern konnte. Allerdings spricht die sccsid im 1.85 +aufstoebern konnte. Allerdings spricht die SCCS-ID im 1.86 Quellcode von Version 1.5. Es muss also noch eine 1.87 Vorgeschichte geben. Zu dieser habe ich leider keinen Zugang 1.88 gefunden. 1.89 XXX mail an TUHS 1.90 1.91 -Nun ein Blick auf die BSD-Linie: Dort ist mein 1.92 -fruehester Fund ein cut.c mit dem Dateimodifikationsdatum 1.93 -1986-11-07 1.94 +Nun ein Blick auf die BSD-Linie: Dort ist mein fruehester 1.95 +Fund ein cut.c mit dem Dateimodifikationsdatum 1986-11-07 1.96 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-UWisc/src/usr.bin/cut 1.97 als Teil der Spezialversion 4.3BSD-UWisc, 1.98 [ http://gunkies.org/wiki/4.3_BSD_NFS_Wisconsin_Unix 1.99 die im Januar 1987 veroeffentlicht wurde. 1.100 Die Implementierung unterscheidet sich nur minimal von der 1.101 in System III. 1.102 -Im bekannteren 4.3BSD-Tahoe (1988) taucht cut nicht auf. 1.103 -Das darauf folgende 4.3BSD-Reno (1990) liefert aber wieder 1.104 -ein cut mit aus. Dieses cut ist ein von Adam S. Moskowitz und 1.105 +Im bekannteren 4.3BSD-Tahoe (1988) tauchte cut nicht auf. 1.106 +Das darauf folgende 4.3BSD-Reno (1990) lieferte aber wieder 1.107 +ein cut mit aus. Dieses cut war ein von Adam S. Moskowitz und 1.108 Marciano Pitargue neu implementiertes cut, das 1989 in BSD 1.109 aufgenommen wurde. 1.110 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-Reno/src/usr.bin/cut 1.111 Seine Manpage 1.112 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-Reno/src/usr.bin/cut/cut.1 1.113 erwaehnt bereits die erwartete Konformitaet mit POSIX.2. 1.114 -XXX 2 oder 3 modi? Draft 9: 2 modi? Draft 11.2 hat 3 modi! 1.115 -Nun sollte man wissen, dass POSIX.2 erst im September 1.116 +Nun muss man wissen, dass POSIX.2 erst im September 1.117 1992 veroeffentlicht wurde, also gut zwei Jahren nachdem die 1.118 -Manpage und das Programm geschrieben wurden. Das Programm 1.119 +Manpage und das Programm geschrieben worden waren. Das Programm 1.120 wurde folglich anhand von Arbeitsversionen des Standards 1.121 implementiert. Ein Blick in den Code bekraeftigt diese Vermutung. 1.122 In der Funktion zum parsen der Feldauswahlliste findet sich 1.123 @@ -183,9 +181,15 @@ 1.124 The elements in list can be repeated, can overlap, and can 1.125 be specified in any order. 1.126 1.127 -Die Versionsnummern und Aenderungsdatums der aelteren 1.128 -BSD-Implementierungen kann man aus den SCCS-IDs (die vom 1.129 -damaligen Versionskontrollsystem in den Code eingefuegt wurden) 1.130 +Auch listet Draft 11.2 alle drei Modi, waehrend in diesem 1.131 +BSD cut nur die zwei alten implementiert sind. Es koennte also 1.132 +sein, dass in Draft 9 der Bytemodus noch nicht vorhanden war. 1.133 +Da ich keinen Zugang zu Draft 9 oder 10 finden konnte, war es mir 1.134 +leider nicht moeglich, diese Vermutung zu pruefen. XXX 1.135 + 1.136 +Die Versionsnummern und Aenderungsdaten der aelteren 1.137 +BSD-Implementierungen kann man aus den SCCS-IDs, die vom 1.138 +damaligen Versionskontrollsystem in den Code eingefuegt wurden, 1.139 ablesen. So z.B. bei 4.3BSD-Reno: ``5.3 (Berkeley) 6/24/90''. 1.140 1.141 Das cut der GNU Coreutils enthaelt folgenden Copyrightvermerk: 1.142 @@ -193,12 +197,12 @@ 1.143 Copyright (C) 1997-2015 Free Software Foundation, Inc. 1.144 Copyright (C) 1984 David M. Ihnat 1.145 1.146 -Der Code hat also ziemlich alte Urspruenge. Wie aus weiteren 1.147 -Kommentaren zu entnehmen ist, wurde der Code zuerst von David 1.148 +Der Code hat also recht alte Urspruenge. Wie aus weiteren 1.149 +Kommentaren zu entnehmen ist, wurde der Programmcode zuerst von David 1.150 MacKenzie und spaeter von Jim Meyering ueberarbeitet. Letzterer 1.151 hat den Code 1992 auch ins Versionkontrollsystem eingestellt. 1.152 -Weshalb die Jahre zwischen 1992 und 1997 nicht im Copyright-Vermerk 1.153 -auftauchen, ist unklar. 1.154 +Weshalb die Jahre vor 1997, zumindest ab 1992, nicht im 1.155 +Copyright-Vermerk auftauchen, ist unklar. 1.156 1.157 Trotz der vielen Jahreszahlen aus den 80er Jahren gehoert cut, 1.158 aus Sicht des urspruenglichen Unix, zu den juengeren Tools. 1.159 @@ -212,8 +216,8 @@ 1.160 schon zwei Programme gab, die die Funktion von cut abdecken 1.161 konnten. Ein Argument fuer cut war sicher seine Kompaktheit und 1.162 die damit verbundene Geschwindigkeit gegenueber dem damals 1.163 -traegen awk. Diese schlanke Gestalt ist es auch, die der Unix 1.164 -Philosopie entspricht: Mache eine Aufgabe und die richtig! 1.165 +traegen awk. Diese schlanke Gestalt ist es auch, die der 1.166 +Unix-Philosopie entspricht: Mache eine Aufgabe und die richtig! 1.167 Cut ueberzeugte. Es wurde in andere Unix Varianten uebernommen, 1.168 standardisiert und ist heutzutage ueberall anzutreffen. 1.169 1.170 @@ -232,27 +236,27 @@ 1.171 Multibyte-Verarbeitung des POSIX-Zeichenmodus bereits seit 1.172 1992 standardisiert, wie steht es aber mit deren Umsetzung? 1.173 Welche Versionen implementieren POSIX korrekt? 1.174 -Die Situation ist dreiteilig: Es gibt traditionelle 1.175 +Die Situation ist dreiteilig: Es gibt historische 1.176 Implementierungen, die nur -c und -f kennen. Dann gibt es 1.177 Implementierungen die -b zwar kennen, es aber lediglich als Alias 1.178 fuer -c handhaben. Diese Implementierungen funktionieren mit 1.179 Single-Byte-Encodings (z.B. US-ASCII, Latin1) korrekt, bei 1.180 -Multi-Byte-Encodings (z.B. UTF-8) verhaelt sich ihr -c aber 1.181 +Multibyte-Encodings (z.B. UTF-8) verhaelt sich ihr -c aber 1.182 wie -b (und -n wird ignoriert). Schliesslich gibt es noch 1.183 Implementierungen, die -b und -c tatsaechlich POSIX-konform 1.184 implementieren. 1.185 1.186 -Traditionelle Zwei-Modi-Implementierungen sind z.B. die von 1.187 +Historische Zwei-Modi-Implementierungen sind z.B. die von 1.188 System III, System V und die aller BSDs bis in die 90er. 1.189 1.190 Pseudo-Multibyte-Implementierungen bieten GNU und die 1.191 -modernen NetBSDs und OpenBSDs. Man darf sich durchaus fragen, 1.192 +modernen NetBSDs und OpenBSDs. Man darf sich sicher fragen, 1.193 ob dort ein Schein von POSIX-Konformitaet gewahrt wird. 1.194 Teilweise findet man erst nach genauerer Suche heraus, dass 1.195 -c und -n nicht wie erwartet funktionieren; teilweise machen es 1.196 -sich die System auch einfach, indem sie auf 1.197 -Singlebyte-Zeichenkodierungen beharren, das aber dafuer klar 1.198 -darlegen: 1.199 +sich die Systeme auch einfach, indem sie auf 1.200 +Singlebyte-Zeichenkodierungen beharren, das aber dafuer meist 1.201 +klar darlegen: 1.202 1.203 Since we don't support multi-byte characters, the -c and -b 1.204 options are equivalent, and the -n option is meaningless. 1.205 @@ -268,10 +272,10 @@ 1.206 uebernommen haben, bleibt offen. Es scheint aber an der im 1.207 obigen Kommentar formulierten Grundausrichtung zu liegen. 1.208 1.209 -Wie findet man als Nutzer heraus, ob beim cut(1) des eigenen 1.210 +Wie findet man nun als Nutzer heraus, ob beim cut(1) des eigenen 1.211 Systems Multibytes korrekt unterstuetzt werden? Zuerst ist 1.212 entscheidend, ob das System selbst mit einem Multibyte-Encoding 1.213 -arbeitet, denn tut es das nicht, dann entsprechen sich naemlich 1.214 +arbeitet, denn tut es das nicht, dann entsprechen sich 1.215 Zeichen und Bytes und die Frage eruebrigt sich. Man kann das 1.216 herausfinden indem man sich das Locale anschaut, aber einfacher 1.217 ist es, ein typisches Mehrbytezeichen, wie z.B. einen Umlaut, 1.218 @@ -301,7 +305,8 @@ 1.219 wird recht sicher einer dieser beiden Ausgaben entsprechen. 1.220 1.221 Nun zum Test der cut-Implementierung. Hat man ein UTF-8-System, 1.222 -dann sollte sich eine POSIX-konforme Implementierung so verhalten: 1.223 +dann sollte sich eine POSIX-konforme Implementierung folgendermassen 1.224 +verhalten: 1.225 1.226 $ echo ä | ./cut -c 1 | od -c 1.227 0000000 303 244 \n 1.228 @@ -328,19 +333,19 @@ 1.229 Fuer einen ersten Eindruck ist der Umfang des Quellcodes 1.230 hilfreich. Typischerweise steigt dieser ueber die Jahre an. Diese 1.231 Beobachtung kann hier in der Tendenz, aber nicht in jedem Fall, 1.232 -bestaetigt werden. Die Unterstuetzung des Byte-Modus (-b) 1.233 -erfordert zwangslaeufig mehr Code, deshalb sind die 1.234 -POSIX-konformen Implementierungen tendenziell umfangreicher. 1.235 +bestaetigt werden. Die POSIX-konforme Umsetzung des Zeichenmodus 1.236 +erfordert zwangslaeufig mehr Code, deshalb sind diese 1.237 +Implementierungen tendenziell umfangreicher. 1.238 1.239 1.240 SLOC Zeilen Bytes Gehoert zu Dateidatum Kategorie 1.241 ----------------------------------------------------------------- 1.242 - 116 123 2966 System III 1980-04-11 (trad) 1.243 - 118 125 3038 4.3BSD-UWisc 1986-11-07 (trad) 1.244 - 200 256 5715 4.3BSD-Reno 1990-06-25 (trad) 1.245 - 200 270 6545 NetBSD 1993-03-21 (trad) 1.246 + 116 123 2966 System III 1980-04-11 (hist) 1.247 + 118 125 3038 4.3BSD-UWisc 1986-11-07 (hist) 1.248 + 200 256 5715 4.3BSD-Reno 1990-06-25 (hist) 1.249 + 200 270 6545 NetBSD 1993-03-21 (hist) 1.250 218 290 6892 OpenBSD 2008-06-27 (pseudo) 1.251 - 224 296 6920 FreeBSD 1994-05-27 (trad) 1.252 + 224 296 6920 FreeBSD 1994-05-27 (hist) 1.253 232 306 7500 NetBSD 2014-02-03 (pseudo) 1.254 340 405 7423 Heirloom 2012-05-20 (POSIX) 1.255 382 586 14175 GNU coreutils 1992-11-08 (pseudo) 1.256 @@ -352,8 +357,8 @@ 1.257 urspruenglichen Implementierungen, die sich nur minimal 1.258 unterscheiden, mit gut 100 SLOCs. (2) Die fuenf BSD-Versionen mit 1.259 gut 200 SLOCs. (3) Die zwei POSIX-konformen Programme und 1.260 -die alte GNU-Version mit 340-390 SLOCs. Und (4) die moderne 1.261 -GNU-Variante mit fast 600 SLOCs. 1.262 +die alte GNU-Version mit 340-390 SLOCs. Und schliesslich (4) die 1.263 +moderne GNU-Variante mit fast 600 SLOCs. 1.264 1.265 Die Abweichung zwischen logischen Codezeilen (SLOC, ermittelt mit 1.266 SLOCcount) und der Anzahl von Zeilenumbruechen in der Datei (`wc 1.267 @@ -366,15 +371,15 @@ 1.268 und der Dateigroesse (`wc -c'), so pendelt das Teilnehmerfeld 1.269 zwischen 25 und 30 Bytes je Anweisung. Die Heirloom-Implementierung 1.270 weicht mit nur 21 nach unten ab, die GNU-Implementierungen mit 1.271 -fast 40 nach oben. Dies liegt bei GNU hauptsaechlich an deren 1.272 +fast 40 nach oben. Bei GNU liegt dies hauptsaechlich an deren 1.273 Programmierstil, mit spezieller Einrueckung und langen Bezeichnern. 1.274 Ob man die Heirloom-Implementierung als besonders kryptisch 1.275 oder als besonders elegant bezeichnen will, das soll der 1.276 eigenen Einschaetzung des Lesers ueberlassen bleiben. 1.277 1.278 1.279 -Die interne Struktur des C-Codes ist meist aehnlich. Neben der 1.280 -obligatorischen main-Funktion, die die Kommandozeilenargumente 1.281 +Die interne Struktur der Programmcodes (in C) ist meist aehnlich. 1.282 +Neben der obligatorischen main-Funktion, die die Kommandozeilenargumente 1.283 verarbeitet, gibt es im Normalfall eine Funktion, die die 1.284 Feldauswahl in eine interne Datenstruktur ueberfuehrt. Desweiteren 1.285 haben fast alle Implementierungen separate Funktionen fuer die 1.286 @@ -382,28 +387,28 @@ 1.287 wird die `-b -n'-Kombination als weiterer Modus behandelt, und 1.288 damit in einer eigenen Funktion umgesetzt. Nur bei der fruehen 1.289 System III-Implementierung (und seiner 4.3BSD-UWisc-Variante) 1.290 -wird ausser den Fehlerausgaben nichts aus der main-Funktion 1.291 -ausgelagert. 1.292 +wird ausser den Fehlerausgaben alles in der main-Funktion 1.293 +erledigt. 1.294 1.295 Cut-Implementierungen haben typischerweise zwei limitierende 1.296 Groessen: Die Maximalanzahl unterstuetzter Felder und die maximale 1.297 -Zeilenlaenge. Bei System III ist die Anzahl der moeglichen Felder 1.298 -und ebenso die Zeilenlaenge auf 512 begrenzt. 4.3BSD-Reno und die 1.299 -BSDs der 90er Jahre haben ebenfalls fixe Grenzen (_BSD_LINE_MAX 1.300 -bzw. _POSIX2_LINE_MAX). Bei modernen FreeBSDs, NetBSDs, bei 1.301 -allen GNU-Implementierungen und bei Heirloom kann sowohl 1.302 -die Felderanzahl als auch die maximale Zeilenlaenge beliebig 1.303 -gross werden; der Speicher dafür wird dynamisch alloziiert. 1.304 -OpenBSD ist ein Hybrid aus fixer Maximalzahl an Feldern, aber 1.305 -beliebiger Zeilenlaenge. Die begrenzte Felderanzahl scheint 1.306 -jedoch kein praktisches Problem darzustellen, da _POSIX2_LINE_MAX 1.307 -mit mindestens 2048 durchaus genug Platz bieten sollte. 1.308 +Zeilenlaenge. Bei System III sind beide Groessen auf 512 begrenzt. 1.309 +4.3BSD-Reno und die BSDs der 90er Jahre haben ebenfalls fixe 1.310 +Grenzen (_BSD_LINE_MAX bzw. _POSIX2_LINE_MAX). Bei modernen 1.311 +FreeBSDs, NetBSDs, bei allen GNU-Implementierungen und bei 1.312 +Heirloom kann sowohl die Felderanzahl als auch die maximale 1.313 +Zeilenlaenge beliebig gross werden; der Speicher dafür wird 1.314 +dynamisch alloziiert. OpenBSD ist ein Hybrid aus fixer 1.315 +Maximalzahl an Feldern, aber beliebiger Zeilenlaenge. Die 1.316 +begrenzte Felderanzahl scheint jedoch kein Praxisproblem 1.317 +darzustellen, da _POSIX2_LINE_MAX mit mindestens 2048 durchaus 1.318 +gross genug sein sollte. 1.319 1.320 1.321 Beschreibungen 1.322 1.323 Interessant ist auch ein Vergleich der Kurzbeschreibungen von 1.324 -cut, wie sie sich in der Titelzeile von Manpages oder manchmal 1.325 +cut, wie sie sich in der Titelzeile der Manpages oder manchmal 1.326 auch am Anfang der Quellcodedatei finden. Die folgende Liste 1.327 ist grob zeitlich geordnet und nach Abstammung gruppiert: 1.328 1.329 @@ -436,32 +441,30 @@ 1.330 1.331 1.332 Die mit ``(src)'' markierten Beschreibungen sind aus dem 1.333 -jeweiligen Quellcode entnommen. 1.334 -Der POSIX-Eintrag enthaelt die Beschreibung des Standards. 1.335 -Der ``Unix Reader'' ist ein rueckblickendes Textdokument von 1.336 -Doug McIlroy, das das Auftreten von Tools in der Geschichte 1.337 -des Research Unix zum Thema hat. 1.338 +jeweiligen Quellcode entnommen. Der POSIX-Eintrag enthaelt 1.339 +die Beschreibung des Standards. Der ``Unix Reader'' ist ein 1.340 +rueckblickendes Textdokument von Doug McIlroy, das das 1.341 +Auftreten von Tools in der Geschichte des Research Unix zum 1.342 +Thema hat. 1.343 [ http://doc.cat-v.org/unix/unix-reader/contents.pdf 1.344 -Eigentlich sollte seine 1.345 -Beschreibung der in Version 8 Unix entsprechen. Die 1.346 -Abweichung koennte sowohl ein Uebertragungsfehler als auch 1.347 -eine nachtraegliche Korrektur sein. 1.348 -Alle uebrigen Beschreibungen entstammen den Manpages. 1.349 +Eigentlich sollte seine Beschreibung der in Version 8 Unix 1.350 +entsprechen. Die Abweichung koennte sowohl ein 1.351 +Uebertragungsfehler als auch eine nachtraegliche Korrektur 1.352 +sein. Alle uebrigen Beschreibungen entstammen den Manpages. 1.353 1.354 Oft ist mit der Zeit die POSIX-Beschreibung uebernommen 1.355 -oder zumindest an sie angeglichen worden, wie beispielsweise 1.356 -bei FreeBSD. 1.357 +oder an sie angeglichen worden, wie beispielsweise bei FreeBSD. 1.358 [ https://svnweb.freebsd.org/base?view=revision&revision=167101 1.359 1.360 Interessant ist, dass die GNU coreutils seit Anbeginn vom 1.361 Entfernen von Teilen der Eingabe sprechen, wohingegen die 1.362 Kommandozeilenangabe klar ein Auswaehlen darstellt. Die 1.363 -Worte ``cut out'' sind vielleicht auch nur etwas zu 1.364 +Worte ``cut out'' sind vielleicht auch etwas zu 1.365 missverstaendlich. HP-UX hat sie deshalb praezisiert. 1.366 1.367 Auch beim Begriff, was selektiert wird, ist man sich 1.368 -uneins. Die einen reden von Feldern (POSIX), andere von 1.369 -Abschnitten bzw. Teilen (BSD) und wieder andere von Spalten 1.370 +uneins. Die Einen reden von Feldern (POSIX), Andere von 1.371 +Abschnitten bzw. Teilen (BSD) und wieder Andere von Spalten 1.372 (Research Unix). Ironischerweise leistet sich gerade Version 1.373 8 Unix, das eigentlich um eine sehr treffende Weltsicht 1.374 bemueht ist, mit ``rearrange columns of data'' die