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, 71 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/cut.txt	Sun May 03 18:08:00 2015 +0200
+++ b/cut.txt	Sun May 03 21:05:00 2015 +0200
@@ -103,6 +103,23 @@
 Reihenfolge ausgegeben wie sie in der Eingabe waren.
 
 
+
+cut(1) in Version 8 Unix
+``In data base parlance, it projects a relation.''
+
+WP:
+http://de.wikipedia.org/wiki/Projektion_(Informatik)#Projektion
+
+	Die Projektion entspricht der Projektionsabbildung aus der
+	Mengenlehre und kann auch Attributbeschränkung genannt
+	werden. Sie extrahiert einzelne Attribute aus der
+	ursprünglichen Attributmenge und ist somit als eine Art
+	Selektion auf Spaltenebene zu verstehen, das heißt, die
+	Projektion blendet Spalten aus. 
+
+
+
+
 Geschichtliches
 
 Cut erblickte 1982 mit dem Release von UNIX System III das
@@ -179,6 +196,7 @@
 4.3BSD-UWisc (src)	cut and paste columns of a table (projection of a relation)
 4.3BSD-Reno	select portions of each line of a file
 NetBSD		select portions of each line of a file
+OpenBSD 4.6	select portions of each line of a file
 FreeBSD 1.0	select portions of each line of a file
 FreeBSD 7.0	cut out selected portions of each line of a file
 SunOS 4.1.3	remove selected fields from each line of a file
@@ -206,7 +224,7 @@
 worden, wie beispielsweise bei FreeBSD zu sehen.
 [ https://svnweb.freebsd.org/base?view=revision&revision=167101
 
-Interessant ist, dass die GNU coreutils unveraendert vom
+Interessant ist, dass die GNU coreutils seit Anbeginn vom
 Entfernen von Teilen der Eingabe sprechen, wohingegen die
 Kommandozeilenangabe klar ein Auswaehlen darstellt. Die
 Worte ``cut out'' sind vielleicht auch nicht klar genug.
@@ -224,14 +242,33 @@
 
 Codevergleich
 
+Nun zum Blick auf den Code. Hier soll eine Auswahl an
+Implementierungen etwas genauer betrachtet werden. Fuer einen
+ersten Eindruck ist der Umfang des Quellcodes hilfreich.
+Typischerweise steigt dieser ueber die Jahre an. Diese
+Beobachtung kann hier in der Tendenz aber nicht in jedem Fall
+bestaetigt werden. Die Unterstuetzung des Byte-Modus (-b)
+erfordert zwangslaeufig mehr Code, deshalb ist zu erwarten,
+dass 
+
+-b pseudo: openbsd, netbsd.2014, gnu*
+-b real: freebsd.2014
+
+:-& echo '123ä56' | cut -c -6 | od -c  
+0000000   1   2   3 303 244   5  \n
+0000007
+
+:-& echo '123ä56' | cut -b -6 | od -c
+0000000   1   2   3 303 244   5  \n
+0000007
 
 
-
-B-) wc -lc cut.c* | sort -n
+$ wc -lc cut.c* | sort -n
   123  2966 cut.c__system_iii.1980-04-11
   125  3038 cut.c__4.3bsd-uwisc.1986-11-07
   256  5715 cut.c__4.3bsd-reno.1990-06-25
   270  6545 cut.c__netbsd.1993-03-21
+  290  6892 cut.c__openbsd.2008-06-27	*
   296  6920 cut.c__freebsd.1994-05-27
   306  7500 cut.c__netbsd.2014-02-03	*
   479 10961 cut.c__freebsd.2012-11-24	*
@@ -239,12 +276,13 @@
   830 23167 cut.c__gnu.2015-05-01	*
  3271 80987 total
 
-B-) c_count cut.c* | sort -n
+$ c_count cut.c* | sort -n
 Total:
 116 cut.c__system_iii.1980-04-11
 118 cut.c__4.3bsd-uwisc.1986-11-07
 200 cut.c__4.3bsd-reno.1990-06-25
 200 cut.c__netbsd.1993-03-21
+218 cut.c__openbsd.2008-06-27	*
 224 cut.c__freebsd.1994-05-27
 232 cut.c__netbsd.2014-02-03	*
 382 cut.c__gnu.1992-11-08	*
@@ -256,9 +294,36 @@
 
 
 
+system_iii.1980-04-11	Release 1.5
 
-cut(1) in Version 8 Unix
-``In data base parlance, it projects a relation.''
+SCCSIDs:
+
+4.3bsd-uwisc.1986-11-07	"@(#)cut.c      1.3";
+4.3bsd-reno.1990-06-25	"@(#)cut.c      5.3 (Berkeley) 6/24/90";
+netbsd.1993-03-21	"@(#)cut.c      5.4 (Berkeley) 10/30/90";
+freebsd.1994-05-27	"@(#)cut.c      8.1 (Berkeley) 6/6/93";
+
+freebsd.2012-11-24	"@(#)cut.c      8.3 (Berkeley) 5/4/95";
+netbsd.2014-02-03	"@(#)cut.c      8.3 (Berkeley) 5/4/95";
+
+openbsd.2008-06-27	"@(#)cut.c      8.3 (Berkeley) 5/4/95";
+			"$OpenBSD: cut.c,v 1.13 2008/06/27 08:02:13 sobrado Exp $";
+
+GNU
+   Copyright (C) 1997-2015 Free Software Foundation, Inc.
+   Copyright (C) 1984 David M. Ihnat
+/* Written by David Ihnat.  */
+
+/* POSIX changes, bug fixes, long-named options, and cleanup
+   by David MacKenzie <djm@gnu.ai.mit.edu>.
+
+   Rewrite cut_fields and cut_bytes -- Jim Meyering.  */
+
+1992-11-08
+Jim Meyering
+
+
+