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