Mercurial > docs > cut
comparison cut.txt @ 7:21ca59543b07
Zwischenstand
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Sun, 03 May 2015 21:05:00 +0200 |
parents | bf2ac5df0063 |
children | 1dc4a9dca829 |
comparison
equal
deleted
inserted
replaced
6:bf2ac5df0063 | 7:21ca59543b07 |
---|---|
99 gibt z.B. die Zeichen Nummer 1, 4, 5, 6, 7 und 8 aus. Die | 99 gibt z.B. die Zeichen Nummer 1, 4, 5, 6, 7 und 8 aus. Die |
100 Auswahl aehnelt damit der Mengenlehre in der Mathematik: | 100 Auswahl aehnelt damit der Mengenlehre in der Mathematik: |
101 Jedes angegebene Feld soll in der Ergebnismenge sein. Die | 101 Jedes angegebene Feld soll in der Ergebnismenge sein. Die |
102 Felder der Ergebnismenge werden dabei immer in der gleichen | 102 Felder der Ergebnismenge werden dabei immer in der gleichen |
103 Reihenfolge ausgegeben wie sie in der Eingabe waren. | 103 Reihenfolge ausgegeben wie sie in der Eingabe waren. |
104 | |
105 | |
106 | |
107 cut(1) in Version 8 Unix | |
108 ``In data base parlance, it projects a relation.'' | |
109 | |
110 WP: | |
111 http://de.wikipedia.org/wiki/Projektion_(Informatik)#Projektion | |
112 | |
113 Die Projektion entspricht der Projektionsabbildung aus der | |
114 Mengenlehre und kann auch Attributbeschränkung genannt | |
115 werden. Sie extrahiert einzelne Attribute aus der | |
116 ursprünglichen Attributmenge und ist somit als eine Art | |
117 Selektion auf Spaltenebene zu verstehen, das heißt, die | |
118 Projektion blendet Spalten aus. | |
119 | |
120 | |
104 | 121 |
105 | 122 |
106 Geschichtliches | 123 Geschichtliches |
107 | 124 |
108 Cut erblickte 1982 mit dem Release von UNIX System III das | 125 Cut erblickte 1982 mit dem Release von UNIX System III das |
177 HP-UX cut out (extract) selected fields of each line of a file | 194 HP-UX cut out (extract) selected fields of each line of a file |
178 | 195 |
179 4.3BSD-UWisc (src) cut and paste columns of a table (projection of a relation) | 196 4.3BSD-UWisc (src) cut and paste columns of a table (projection of a relation) |
180 4.3BSD-Reno select portions of each line of a file | 197 4.3BSD-Reno select portions of each line of a file |
181 NetBSD select portions of each line of a file | 198 NetBSD select portions of each line of a file |
199 OpenBSD 4.6 select portions of each line of a file | |
182 FreeBSD 1.0 select portions of each line of a file | 200 FreeBSD 1.0 select portions of each line of a file |
183 FreeBSD 7.0 cut out selected portions of each line of a file | 201 FreeBSD 7.0 cut out selected portions of each line of a file |
184 SunOS 4.1.3 remove selected fields from each line of a file | 202 SunOS 4.1.3 remove selected fields from each line of a file |
185 SunOS 5.5.1 cut out selected fields of each line of a file | 203 SunOS 5.5.1 cut out selected fields of each line of a file |
186 | 204 |
204 | 222 |
205 Zumeist ist mit der Zeit die POSIX-Beschreibung uebernommen | 223 Zumeist ist mit der Zeit die POSIX-Beschreibung uebernommen |
206 worden, wie beispielsweise bei FreeBSD zu sehen. | 224 worden, wie beispielsweise bei FreeBSD zu sehen. |
207 [ https://svnweb.freebsd.org/base?view=revision&revision=167101 | 225 [ https://svnweb.freebsd.org/base?view=revision&revision=167101 |
208 | 226 |
209 Interessant ist, dass die GNU coreutils unveraendert vom | 227 Interessant ist, dass die GNU coreutils seit Anbeginn vom |
210 Entfernen von Teilen der Eingabe sprechen, wohingegen die | 228 Entfernen von Teilen der Eingabe sprechen, wohingegen die |
211 Kommandozeilenangabe klar ein Auswaehlen darstellt. Die | 229 Kommandozeilenangabe klar ein Auswaehlen darstellt. Die |
212 Worte ``cut out'' sind vielleicht auch nicht klar genug. | 230 Worte ``cut out'' sind vielleicht auch nicht klar genug. |
213 HP-UX hat sie deshalb praezisiert. | 231 HP-UX hat sie deshalb praezisiert. |
214 | 232 |
222 | 240 |
223 | 241 |
224 | 242 |
225 Codevergleich | 243 Codevergleich |
226 | 244 |
227 | 245 Nun zum Blick auf den Code. Hier soll eine Auswahl an |
228 | 246 Implementierungen etwas genauer betrachtet werden. Fuer einen |
229 | 247 ersten Eindruck ist der Umfang des Quellcodes hilfreich. |
230 B-) wc -lc cut.c* | sort -n | 248 Typischerweise steigt dieser ueber die Jahre an. Diese |
249 Beobachtung kann hier in der Tendenz aber nicht in jedem Fall | |
250 bestaetigt werden. Die Unterstuetzung des Byte-Modus (-b) | |
251 erfordert zwangslaeufig mehr Code, deshalb ist zu erwarten, | |
252 dass | |
253 | |
254 -b pseudo: openbsd, netbsd.2014, gnu* | |
255 -b real: freebsd.2014 | |
256 | |
257 :-& echo '123ä56' | cut -c -6 | od -c | |
258 0000000 1 2 3 303 244 5 \n | |
259 0000007 | |
260 | |
261 :-& echo '123ä56' | cut -b -6 | od -c | |
262 0000000 1 2 3 303 244 5 \n | |
263 0000007 | |
264 | |
265 | |
266 $ wc -lc cut.c* | sort -n | |
231 123 2966 cut.c__system_iii.1980-04-11 | 267 123 2966 cut.c__system_iii.1980-04-11 |
232 125 3038 cut.c__4.3bsd-uwisc.1986-11-07 | 268 125 3038 cut.c__4.3bsd-uwisc.1986-11-07 |
233 256 5715 cut.c__4.3bsd-reno.1990-06-25 | 269 256 5715 cut.c__4.3bsd-reno.1990-06-25 |
234 270 6545 cut.c__netbsd.1993-03-21 | 270 270 6545 cut.c__netbsd.1993-03-21 |
271 290 6892 cut.c__openbsd.2008-06-27 * | |
235 296 6920 cut.c__freebsd.1994-05-27 | 272 296 6920 cut.c__freebsd.1994-05-27 |
236 306 7500 cut.c__netbsd.2014-02-03 * | 273 306 7500 cut.c__netbsd.2014-02-03 * |
237 479 10961 cut.c__freebsd.2012-11-24 * | 274 479 10961 cut.c__freebsd.2012-11-24 * |
238 586 14175 cut.c__gnu.1992-11-08 * | 275 586 14175 cut.c__gnu.1992-11-08 * |
239 830 23167 cut.c__gnu.2015-05-01 * | 276 830 23167 cut.c__gnu.2015-05-01 * |
240 3271 80987 total | 277 3271 80987 total |
241 | 278 |
242 B-) c_count cut.c* | sort -n | 279 $ c_count cut.c* | sort -n |
243 Total: | 280 Total: |
244 116 cut.c__system_iii.1980-04-11 | 281 116 cut.c__system_iii.1980-04-11 |
245 118 cut.c__4.3bsd-uwisc.1986-11-07 | 282 118 cut.c__4.3bsd-uwisc.1986-11-07 |
246 200 cut.c__4.3bsd-reno.1990-06-25 | 283 200 cut.c__4.3bsd-reno.1990-06-25 |
247 200 cut.c__netbsd.1993-03-21 | 284 200 cut.c__netbsd.1993-03-21 |
285 218 cut.c__openbsd.2008-06-27 * | |
248 224 cut.c__freebsd.1994-05-27 | 286 224 cut.c__freebsd.1994-05-27 |
249 232 cut.c__netbsd.2014-02-03 * | 287 232 cut.c__netbsd.2014-02-03 * |
250 382 cut.c__gnu.1992-11-08 * | 288 382 cut.c__gnu.1992-11-08 * |
251 391 cut.c__freebsd.2012-11-24 * | 289 391 cut.c__freebsd.2012-11-24 * |
252 588 cut.c__gnu.2015-05-01 * | 290 588 cut.c__gnu.2015-05-01 * |
254 | 292 |
255 (* == version hat -b) | 293 (* == version hat -b) |
256 | 294 |
257 | 295 |
258 | 296 |
259 | 297 system_iii.1980-04-11 Release 1.5 |
260 cut(1) in Version 8 Unix | 298 |
261 ``In data base parlance, it projects a relation.'' | 299 SCCSIDs: |
300 | |
301 4.3bsd-uwisc.1986-11-07 "@(#)cut.c 1.3"; | |
302 4.3bsd-reno.1990-06-25 "@(#)cut.c 5.3 (Berkeley) 6/24/90"; | |
303 netbsd.1993-03-21 "@(#)cut.c 5.4 (Berkeley) 10/30/90"; | |
304 freebsd.1994-05-27 "@(#)cut.c 8.1 (Berkeley) 6/6/93"; | |
305 | |
306 freebsd.2012-11-24 "@(#)cut.c 8.3 (Berkeley) 5/4/95"; | |
307 netbsd.2014-02-03 "@(#)cut.c 8.3 (Berkeley) 5/4/95"; | |
308 | |
309 openbsd.2008-06-27 "@(#)cut.c 8.3 (Berkeley) 5/4/95"; | |
310 "$OpenBSD: cut.c,v 1.13 2008/06/27 08:02:13 sobrado Exp $"; | |
311 | |
312 GNU | |
313 Copyright (C) 1997-2015 Free Software Foundation, Inc. | |
314 Copyright (C) 1984 David M. Ihnat | |
315 /* Written by David Ihnat. */ | |
316 | |
317 /* POSIX changes, bug fixes, long-named options, and cleanup | |
318 by David MacKenzie <djm@gnu.ai.mit.edu>. | |
319 | |
320 Rewrite cut_fields and cut_bytes -- Jim Meyering. */ | |
321 | |
322 1992-11-08 | |
323 Jim Meyering | |
324 | |
325 | |
326 | |
262 | 327 |
263 | 328 |
264 | 329 |
265 Autoreninfo | 330 Autoreninfo |
266 | 331 |