docs/cut

changeset 19:a62964d0cc54

Verbesserungen durch diction(1) eingearbeitet
author markus schnalke <meillo@marmaro.de>
date Tue, 19 May 2015 08:04:05 +0200
parents b1e7b45fb3c8
children c0e589b92c52
files cut.txt
diffstat 1 files changed, 27 insertions(+), 26 deletions(-) [+]
line diff
     1.1 --- a/cut.txt	Tue May 19 07:30:07 2015 +0200
     1.2 +++ b/cut.txt	Tue May 19 08:04:05 2015 +0200
     1.3 @@ -19,7 +19,7 @@
     1.4  definierte, Felder.
     1.5  
     1.6  Der Zeichenmodus ist optimal geeignet um Festbreitenformate zu
     1.7 -zerteilen. So kann man damit beispielsweise bestimmte
     1.8 +zerteilen. Man kann damit beispielsweise bestimmte
     1.9  Zugriffsrechte aus der Ausgabe von `ls -l' ausschneiden, in
    1.10  diesem Beispiel die Rechte des Besitzers:
    1.11  
    1.12 @@ -61,7 +61,7 @@
    1.13  	$ cut -b -500
    1.14  
    1.15  Den Rest kann man sich mit `cut -b 501-' einfangen. Diese
    1.16 -Funktion ist insbesondere fuer POSIX wichtig, da man so
    1.17 +Funktion ist insbesondere fuer POSIX wichtig, da man damit
    1.18  Textdateien mit begrenzter Zeilenlaenge erzeugen kann.
    1.19  [ http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cut.html#tag_20_28_17
    1.20  
    1.21 @@ -69,17 +69,17 @@
    1.22  er sich doch nur so verhalten wie der alte Zeichenmodus
    1.23  normalerweise schon implementiert war. Beim Zeichenmodus aber
    1.24  wurde eine neue Implementierungsweise gefordert. Das Problem
    1.25 -war also nicht, den neuen Bytemodus zu implementieren, sondern
    1.26 +war folglich nicht, den neuen Bytemodus zu implementieren, sondern
    1.27  den Zeichenmodus neu zu implementieren.
    1.28  
    1.29  Neben dem Zeichen- und Bytemodus bietet cut noch den
    1.30  Feldmodus, den man mit `-f' einleitet. Mit ihm
    1.31  koennen Felder ausgewaehlt werden. Das Trennzeichen (per
    1.32 -Default der Tab) kann mit `-d' geaendert werden. Es gilt sowohl
    1.33 -fuer die Eingabe als auch fuer die Ausgabe.
    1.34 +Default der Tab) kann mit `-d' geaendert werden. Es gilt in
    1.35 +gleicher Weise fuer die Eingabe und die Ausgabe.
    1.36  
    1.37  Der typische Anwendungsfall fuer cut im Feldmodus ist die
    1.38 -Auswahl von Information aus der passwd-Datei. So z.B. der
    1.39 +Auswahl von Information aus der passwd-Datei. Hier z.B. der
    1.40  Benutzername und seine ID:
    1.41  
    1.42  	$ cut -d: -f1,3 /etc/passwd
    1.43 @@ -97,8 +97,8 @@
    1.44  seine Grenzen. Gerade der haeufige Fall, dass an Whitespace
    1.45  in Felder geteilt werden soll, wird damit nicht abgedeckt.
    1.46  Der Delimiter kann bei cut nur genau ein Zeichen sein. Es kann
    1.47 -also nicht sowohl an Leerzeichen als auch an Tabs aufgetrennt
    1.48 -werden. Auch unterteilt cut an jedem Trennzeichen. Zwei aneinander
    1.49 +demnach nicht sowohl an Leerzeichen als auch an Tabs aufgetrennt
    1.50 +werden. Zudem unterteilt cut an jedem Trennzeichen. Zwei aneinander
    1.51  stehende Trennzeichen fuehren zu einem leeren Feld. Dieses
    1.52  Verhalten widerspricht den Erwartungen, die man an die
    1.53  Verarbeitung einer Datei mit Whitespace-getrennten Feldern
    1.54 @@ -111,16 +111,17 @@
    1.55  Awk bietet noch eine weitere Funktion, die cut missen
    1.56  laesst: Das Tauschen der Feld-Reihenfolge in der Ausgabe. Bei
    1.57  cut ist die Reihenfolge der Feldauswahlangabe irrelevant; ein
    1.58 -Feld kann selbst mehrfach angegeben werden. So gibt der Aufruf
    1.59 +Feld kann selbst mehrfach angegeben werden. Dementsprechend gibt
    1.60 +der Aufruf
    1.61  von `cut -c 5-8,1,4-6' die Zeichen Nummer 1, 4, 5, 6, 7 und 8
    1.62  in genau dieser Reihenfolge aus. Die Auswahl entspricht damit
    1.63  der Mengenlehre in der Mathematik: Jedes angegebene Feld wird
    1.64  Teil der Ergebnismenge. Die Felder der Ergebnismenge sind
    1.65 -dabei immer gleich geordnet wie in der Eingabe. Um die Worte
    1.66 +hierbei immer gleich geordnet wie in der Eingabe. Um die Worte
    1.67  der Manpage von Version 8 Unix wiederzugeben: ``In data base
    1.68  parlance, it projects a relation.''
    1.69  [ http://man.cat-v.org/unix_8th/1/cut
    1.70 -Cut fuehrt also die Datenbankoperation Projektion auf
    1.71 +Cut fuehrt demnach die Datenbankoperation Projektion auf
    1.72  Textdateien aus. Die Wikipedia erklaert das folgendermassen:
    1.73  
    1.74  	Die Projektion entspricht der Projektionsabbildung aus der
    1.75 @@ -142,7 +143,7 @@
    1.76  [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=SysIII/usr/src/cmd
    1.77  Das ist die aelteste Manifestation des Programms, die ich
    1.78  aufstoebern konnte. Allerdings spricht die SCCS-ID im
    1.79 -Quellcode von Version 1.5. Es muss also noch eine
    1.80 +Quellcode von Version 1.5. Es muss demzufolge noch eine
    1.81  Vorgeschichte geben. Zu dieser habe ich leider keinen Zugang
    1.82  gefunden.
    1.83  XXX mail an TUHS
    1.84 @@ -165,7 +166,7 @@
    1.85  [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-Reno/src/usr.bin/cut/cut.1
    1.86  erwaehnt bereits die erwartete Konformitaet mit POSIX.2.
    1.87  Nun muss man wissen, dass POSIX.2 erst im September
    1.88 -1992 veroeffentlicht wurde, also gut zwei Jahren nachdem die
    1.89 +1992 veroeffentlicht wurde, erst gut zwei Jahren nachdem die
    1.90  Manpage und das Programm geschrieben worden waren. Das Programm
    1.91  wurde folglich anhand von Arbeitsversionen des Standards
    1.92  implementiert. Ein Blick in den Code bekraeftigt diese Vermutung.
    1.93 @@ -182,7 +183,7 @@
    1.94  	The elements in list can be repeated, can overlap, and can
    1.95  	be specified in any order.
    1.96  
    1.97 -Auch listet Draft 11.2 alle drei Modi, waehrend in diesem
    1.98 +Zudem listet Draft 11.2 alle drei Modi, waehrend in diesem
    1.99  BSD cut nur die zwei alten implementiert sind. Es koennte also
   1.100  sein, dass in Draft 9 der Bytemodus noch nicht vorhanden war.
   1.101  Da ich keinen Zugang zu Draft 9 oder 10 finden konnte, war es mir
   1.102 @@ -209,7 +210,7 @@
   1.103  aus Sicht des urspruenglichen Unix, zu den juengeren Tools.
   1.104  Wenn cut auch ein Jahrzehnt aelter als Linux, der Kernel, ist,
   1.105  so war Unix doch schon ueber zehn Jahre alt, als cut das
   1.106 -erste Mal auftauchte. Insbesondere gehoerte cut auch noch nicht
   1.107 +erste Mal auftauchte. Insbesondere gehoerte cut noch nicht
   1.108  zu Version 7 Unix, das die Ausgangsbasis aller modernen
   1.109  Unix-Systeme darstellt. Die weit komplexeren Programme sed
   1.110  und awk waren dort schon vertreten. Man muss sich also
   1.111 @@ -364,8 +365,8 @@
   1.112  Die Abweichung zwischen logischen Codezeilen (SLOC, ermittelt mit
   1.113  SLOCcount) und der Anzahl von Zeilenumbruechen in der Datei (`wc
   1.114  -l') erstreckt sich ueber eine Spanne von Faktor 1.06 bei den
   1.115 -aeltesten Vertretern bis zu Faktor 1.5 bei GNU. Der groesste
   1.116 -Einflussfaktor darauf haben Leerzeilen, reine Kommentarzeilen und
   1.117 +aeltesten Vertretern bis zu Faktor 1.5 bei GNU. Den groessten
   1.118 +Einfluss darauf haben Leerzeilen, reine Kommentarzeilen und
   1.119  die Groesse des Lizenzblocks am Dateianfang. 
   1.120  
   1.121  Betrachtet man die Abweichungen zwischen den logischen Codezeilen
   1.122 @@ -385,7 +386,7 @@
   1.123  verarbeitet, gibt es im Normalfall eine Funktion, die die
   1.124  Feldauswahl in eine interne Datenstruktur ueberfuehrt. Desweiteren
   1.125  haben fast alle Implementierungen separate Funktionen fuer die
   1.126 -zwei bzw. drei Modi. Bei den POSIX-konformen Implementierungen
   1.127 +zwei oder drei Modi. Bei den POSIX-konformen Implementierungen
   1.128  wird die `-b -n'-Kombination als weiterer Modus behandelt, und
   1.129  damit in einer eigenen Funktion umgesetzt. Nur bei der fruehen
   1.130  System III-Implementierung (und seiner 4.3BSD-UWisc-Variante)
   1.131 @@ -409,9 +410,9 @@
   1.132  
   1.133  Beschreibungen
   1.134  
   1.135 -Interessant ist auch ein Vergleich der Kurzbeschreibungen von
   1.136 +Interessant ist zudem ein Vergleich der Kurzbeschreibungen von
   1.137  cut, wie sie sich in der Titelzeile der Manpages oder manchmal
   1.138 -auch am Anfang der Quellcodedatei finden. Die folgende Liste
   1.139 +am Anfang der Quellcodedatei finden. Die folgende Liste
   1.140  ist grob zeitlich geordnet und nach Abstammung gruppiert:
   1.141  
   1.142  
   1.143 @@ -450,9 +451,9 @@
   1.144  Thema hat.
   1.145  [ http://doc.cat-v.org/unix/unix-reader/contents.pdf
   1.146  Eigentlich sollte seine Beschreibung der in Version 8 Unix
   1.147 -entsprechen. Die Abweichung koennte sowohl ein
   1.148 -Uebertragungsfehler als auch eine nachtraegliche Korrektur
   1.149 -sein. Alle uebrigen Beschreibungen entstammen den Manpages.
   1.150 +entsprechen. Die Abweichung koennte ein Uebertragungsfehler
   1.151 +oder eine nachtraegliche Korrektur sein. Alle uebrigen
   1.152 +Beschreibungen entstammen den Manpages.
   1.153  
   1.154  Oft ist mit der Zeit die POSIX-Beschreibung uebernommen
   1.155  oder an sie angeglichen worden, wie beispielsweise bei FreeBSD.
   1.156 @@ -461,10 +462,10 @@
   1.157  Interessant ist, dass die GNU coreutils seit Anbeginn vom
   1.158  Entfernen von Teilen der Eingabe sprechen, wohingegen die
   1.159  Kommandozeilenangabe klar ein Auswaehlen darstellt. Die
   1.160 -Worte ``cut out'' sind vielleicht auch etwas zu
   1.161 -missverstaendlich. HP-UX hat sie deshalb praezisiert.
   1.162 +Worte ``cut out'' sind vielleicht auch zu missverstaendlich.
   1.163 +HP-UX hat sie deshalb praezisiert.
   1.164  
   1.165 -Auch beim Begriff, was selektiert wird, ist man sich
   1.166 +Beim Begriff, was selektiert wird, ist man sich ebenfalls
   1.167  uneins. Die Einen reden von Feldern (POSIX), Andere von
   1.168  Abschnitten bzw. Teilen (BSD) und wieder Andere von Spalten
   1.169  (Research Unix). Ironischerweise leistet sich gerade Version