docs/cut

changeset 7:21ca59543b07

Zwischenstand
author markus schnalke <meillo@marmaro.de>
date Sun, 03 May 2015 21:05:00 +0200
parents bf2ac5df0063
children 1dc4a9dca829
files cut.txt
diffstat 1 files changed, 70 insertions(+), 5 deletions(-) [+]
line diff
     1.1 --- a/cut.txt	Sun May 03 18:08:00 2015 +0200
     1.2 +++ b/cut.txt	Sun May 03 21:05:00 2015 +0200
     1.3 @@ -103,6 +103,23 @@
     1.4  Reihenfolge ausgegeben wie sie in der Eingabe waren.
     1.5  
     1.6  
     1.7 +
     1.8 +cut(1) in Version 8 Unix
     1.9 +``In data base parlance, it projects a relation.''
    1.10 +
    1.11 +WP:
    1.12 +http://de.wikipedia.org/wiki/Projektion_(Informatik)#Projektion
    1.13 +
    1.14 +	Die Projektion entspricht der Projektionsabbildung aus der
    1.15 +	Mengenlehre und kann auch Attributbeschränkung genannt
    1.16 +	werden. Sie extrahiert einzelne Attribute aus der
    1.17 +	ursprünglichen Attributmenge und ist somit als eine Art
    1.18 +	Selektion auf Spaltenebene zu verstehen, das heißt, die
    1.19 +	Projektion blendet Spalten aus. 
    1.20 +
    1.21 +
    1.22 +
    1.23 +
    1.24  Geschichtliches
    1.25  
    1.26  Cut erblickte 1982 mit dem Release von UNIX System III das
    1.27 @@ -179,6 +196,7 @@
    1.28  4.3BSD-UWisc (src)	cut and paste columns of a table (projection of a relation)
    1.29  4.3BSD-Reno	select portions of each line of a file
    1.30  NetBSD		select portions of each line of a file
    1.31 +OpenBSD 4.6	select portions of each line of a file
    1.32  FreeBSD 1.0	select portions of each line of a file
    1.33  FreeBSD 7.0	cut out selected portions of each line of a file
    1.34  SunOS 4.1.3	remove selected fields from each line of a file
    1.35 @@ -206,7 +224,7 @@
    1.36  worden, wie beispielsweise bei FreeBSD zu sehen.
    1.37  [ https://svnweb.freebsd.org/base?view=revision&revision=167101
    1.38  
    1.39 -Interessant ist, dass die GNU coreutils unveraendert vom
    1.40 +Interessant ist, dass die GNU coreutils seit Anbeginn vom
    1.41  Entfernen von Teilen der Eingabe sprechen, wohingegen die
    1.42  Kommandozeilenangabe klar ein Auswaehlen darstellt. Die
    1.43  Worte ``cut out'' sind vielleicht auch nicht klar genug.
    1.44 @@ -224,14 +242,33 @@
    1.45  
    1.46  Codevergleich
    1.47  
    1.48 +Nun zum Blick auf den Code. Hier soll eine Auswahl an
    1.49 +Implementierungen etwas genauer betrachtet werden. Fuer einen
    1.50 +ersten Eindruck ist der Umfang des Quellcodes hilfreich.
    1.51 +Typischerweise steigt dieser ueber die Jahre an. Diese
    1.52 +Beobachtung kann hier in der Tendenz aber nicht in jedem Fall
    1.53 +bestaetigt werden. Die Unterstuetzung des Byte-Modus (-b)
    1.54 +erfordert zwangslaeufig mehr Code, deshalb ist zu erwarten,
    1.55 +dass 
    1.56  
    1.57 +-b pseudo: openbsd, netbsd.2014, gnu*
    1.58 +-b real: freebsd.2014
    1.59  
    1.60 +:-& echo '123ä56' | cut -c -6 | od -c  
    1.61 +0000000   1   2   3 303 244   5  \n
    1.62 +0000007
    1.63  
    1.64 -B-) wc -lc cut.c* | sort -n
    1.65 +:-& echo '123ä56' | cut -b -6 | od -c
    1.66 +0000000   1   2   3 303 244   5  \n
    1.67 +0000007
    1.68 +
    1.69 +
    1.70 +$ wc -lc cut.c* | sort -n
    1.71    123  2966 cut.c__system_iii.1980-04-11
    1.72    125  3038 cut.c__4.3bsd-uwisc.1986-11-07
    1.73    256  5715 cut.c__4.3bsd-reno.1990-06-25
    1.74    270  6545 cut.c__netbsd.1993-03-21
    1.75 +  290  6892 cut.c__openbsd.2008-06-27	*
    1.76    296  6920 cut.c__freebsd.1994-05-27
    1.77    306  7500 cut.c__netbsd.2014-02-03	*
    1.78    479 10961 cut.c__freebsd.2012-11-24	*
    1.79 @@ -239,12 +276,13 @@
    1.80    830 23167 cut.c__gnu.2015-05-01	*
    1.81   3271 80987 total
    1.82  
    1.83 -B-) c_count cut.c* | sort -n
    1.84 +$ c_count cut.c* | sort -n
    1.85  Total:
    1.86  116 cut.c__system_iii.1980-04-11
    1.87  118 cut.c__4.3bsd-uwisc.1986-11-07
    1.88  200 cut.c__4.3bsd-reno.1990-06-25
    1.89  200 cut.c__netbsd.1993-03-21
    1.90 +218 cut.c__openbsd.2008-06-27	*
    1.91  224 cut.c__freebsd.1994-05-27
    1.92  232 cut.c__netbsd.2014-02-03	*
    1.93  382 cut.c__gnu.1992-11-08	*
    1.94 @@ -256,9 +294,36 @@
    1.95  
    1.96  
    1.97  
    1.98 +system_iii.1980-04-11	Release 1.5
    1.99  
   1.100 -cut(1) in Version 8 Unix
   1.101 -``In data base parlance, it projects a relation.''
   1.102 +SCCSIDs:
   1.103 +
   1.104 +4.3bsd-uwisc.1986-11-07	"@(#)cut.c      1.3";
   1.105 +4.3bsd-reno.1990-06-25	"@(#)cut.c      5.3 (Berkeley) 6/24/90";
   1.106 +netbsd.1993-03-21	"@(#)cut.c      5.4 (Berkeley) 10/30/90";
   1.107 +freebsd.1994-05-27	"@(#)cut.c      8.1 (Berkeley) 6/6/93";
   1.108 +
   1.109 +freebsd.2012-11-24	"@(#)cut.c      8.3 (Berkeley) 5/4/95";
   1.110 +netbsd.2014-02-03	"@(#)cut.c      8.3 (Berkeley) 5/4/95";
   1.111 +
   1.112 +openbsd.2008-06-27	"@(#)cut.c      8.3 (Berkeley) 5/4/95";
   1.113 +			"$OpenBSD: cut.c,v 1.13 2008/06/27 08:02:13 sobrado Exp $";
   1.114 +
   1.115 +GNU
   1.116 +   Copyright (C) 1997-2015 Free Software Foundation, Inc.
   1.117 +   Copyright (C) 1984 David M. Ihnat
   1.118 +/* Written by David Ihnat.  */
   1.119 +
   1.120 +/* POSIX changes, bug fixes, long-named options, and cleanup
   1.121 +   by David MacKenzie <djm@gnu.ai.mit.edu>.
   1.122 +
   1.123 +   Rewrite cut_fields and cut_bytes -- Jim Meyering.  */
   1.124 +
   1.125 +1992-11-08
   1.126 +Jim Meyering
   1.127 +
   1.128 +
   1.129 +
   1.130  
   1.131  
   1.132