Mercurial > docs > cut
comparison cut.txt @ 6:bf2ac5df0063
Zwischenstand
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Sun, 03 May 2015 18:08:00 +0200 |
parents | 00097c80a853 |
children | 21ca59543b07 |
comparison
equal
deleted
inserted
replaced
5:00097c80a853 | 6:bf2ac5df0063 |
---|---|
1 Das Werkzeugkaestle | 1 Das Werkzeugkaestle, #1 |
2 | 2 |
3 #1: cut - cut out selected fields of each line of a file | 3 cut - cut out selected fields of each line of a file |
4 --------------------------------------------------------- | 4 ---------------------------------------------------- |
5 markus schnalke, 2015-05 | 5 markus schnalke <meillo@marmaro.de> |
6 2015-05 | |
6 | 7 |
7 | 8 |
8 Cut ist ein klassisches Programm im Unix-Werkzeugkasten. | 9 Cut ist ein klassisches Programm im Unix-Werkzeugkasten. |
9 In keinem ordentlichen Tutorial zur Shellprogrammierung darf | 10 In keinem ordentlichen Tutorial zur Shellprogrammierung darf |
10 es fehlen. Es ist ein schoenes Anschauungs- und Beispielobjekt | 11 es fehlen. Es ist ein schoenes Anschauungs- und Beispielobjekt |
33 $ ls -l | cut -c 3,6,9 | 34 $ ls -l | cut -c 3,6,9 |
34 ww- | 35 ww- |
35 | 36 |
36 Mit cut lassen sich aber auch Strings kuerzen. | 37 Mit cut lassen sich aber auch Strings kuerzen. |
37 | 38 |
38 echo "$long" | cut -c -20 | 39 $ echo "$long" | cut -c -20 |
39 | 40 |
40 Dieser Befehl gibt die ersten maximal 20 Zeichen (jeder | 41 Dieser Befehl gibt die ersten maximal 20 Zeichen (jeder |
41 Zeile) von `$long' aus. | 42 Zeile) von `$long' aus. |
42 | 43 |
43 Geht es aber nicht um die Darstellung von Zeichen, sondern um | 44 Geht es aber nicht um die Darstellung von Zeichen, sondern um |
51 POSIX.2-1992 die Option `-b'. Diese selektiert Bytes. Will man | 52 POSIX.2-1992 die Option `-b'. Diese selektiert Bytes. Will man |
52 also nur die ersten maximal 500 Bytes vor dem | 53 also nur die ersten maximal 500 Bytes vor dem |
53 Newline-Zeichen stehen haben (und den Rest stillschweigend | 54 Newline-Zeichen stehen haben (und den Rest stillschweigend |
54 ignorieren), dann macht man das mit: | 55 ignorieren), dann macht man das mit: |
55 | 56 |
56 cut -b -500 | 57 $ cut -b -500 |
57 | 58 |
58 Den Rest kann man sich mit `cut -b 501-' einfangen. Diese | 59 Den Rest kann man sich mit `cut -b 501-' einfangen. Diese |
59 Funktion ist insbesondere fuer POSIX wichtig, da so sicher | 60 Funktion ist insbesondere fuer POSIX wichtig, da so sicher |
60 gestellt werden kann, dass Textdateien keine beliebig | 61 gestellt werden kann, dass Textdateien keine beliebig |
61 langen Zeilen haben. | 62 langen Zeilen haben. |
68 | 69 |
69 Der typische Anwendungsfall fuer den Feld-Modus. Ist die | 70 Der typische Anwendungsfall fuer den Feld-Modus. Ist die |
70 Extraktion von Information aus der passwd-Datei. So z.B. der | 71 Extraktion von Information aus der passwd-Datei. So z.B. der |
71 Username, die User-ID und das Homeverzeichnis: | 72 Username, die User-ID und das Homeverzeichnis: |
72 | 73 |
73 cut -d: -f1,3,6 /etc/passwd | 74 $ cut -d: -f1,3,6 /etc/passwd |
74 | 75 |
75 (Die Argumente fuer die Optionen koennen bei cut uebrigens | 76 (Die Argumente fuer die Optionen koennen bei cut uebrigens |
76 direkt angehaengt oder mit Whitespace abgetrennt folgen.) | 77 direkt angehaengt oder mit Whitespace abgetrennt folgen.) |
77 | 78 |
78 | 79 |
112 Das ist die aelteste Manifestation des Programms, die ich | 113 Das ist die aelteste Manifestation des Programms, die ich |
113 aufstoebern konnte. | 114 aufstoebern konnte. |
114 | 115 |
115 Aber werfen wir doch einen Blick auf die BSD-Linie: Dort ist mein | 116 Aber werfen wir doch einen Blick auf die BSD-Linie: Dort ist mein |
116 fruehester Fund ein cut.c mit dem Datum 1986-11-07 im Code der | 117 fruehester Fund ein cut.c mit dem Datum 1986-11-07 im Code der |
117 Spezialversion 4.3BSD-UWisc, die im Januar 1987 veroeffentlicht | 118 Spezialversion 4.3BSD-UWisc, |
118 wurde. | 119 [ http://gunkies.org/wiki/4.3_BSD_NFS_Wisconsin_Unix |
120 die im Januar 1987 veroeffentlicht wurde. | |
119 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-UWisc/src/usr.bin/cut | 121 [ http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-UWisc/src/usr.bin/cut |
120 Die Datei unterscheidet sich nur minimal von der aus System III. | 122 Die Datei unterscheidet sich nur minimal von der aus System III. |
121 Im bekannteren 4.3BSD-Tahoe (1988) taucht cut aber nicht auf. | 123 Im bekannteren 4.3BSD-Tahoe (1988) taucht cut aber nicht auf. |
122 Im darauf folgenden 4.3BSD-Reno (1990) gibt es wiederum ein | 124 Im darauf folgenden 4.3BSD-Reno (1990) gibt es wiederum ein |
123 cut ... ein von Adam S. Moskowitz und Marciano Pitargue neu | 125 cut ... ein von Adam S. Moskowitz und Marciano Pitargue neu |
223 Codevergleich | 225 Codevergleich |
224 | 226 |
225 | 227 |
226 | 228 |
227 | 229 |
230 B-) wc -lc cut.c* | sort -n | |
231 123 2966 cut.c__system_iii.1980-04-11 | |
232 125 3038 cut.c__4.3bsd-uwisc.1986-11-07 | |
233 256 5715 cut.c__4.3bsd-reno.1990-06-25 | |
234 270 6545 cut.c__netbsd.1993-03-21 | |
235 296 6920 cut.c__freebsd.1994-05-27 | |
236 306 7500 cut.c__netbsd.2014-02-03 * | |
237 479 10961 cut.c__freebsd.2012-11-24 * | |
238 586 14175 cut.c__gnu.1992-11-08 * | |
239 830 23167 cut.c__gnu.2015-05-01 * | |
240 3271 80987 total | |
241 | |
242 B-) c_count cut.c* | sort -n | |
243 Total: | |
244 116 cut.c__system_iii.1980-04-11 | |
245 118 cut.c__4.3bsd-uwisc.1986-11-07 | |
246 200 cut.c__4.3bsd-reno.1990-06-25 | |
247 200 cut.c__netbsd.1993-03-21 | |
248 224 cut.c__freebsd.1994-05-27 | |
249 232 cut.c__netbsd.2014-02-03 * | |
250 382 cut.c__gnu.1992-11-08 * | |
251 391 cut.c__freebsd.2012-11-24 * | |
252 588 cut.c__gnu.2015-05-01 * | |
253 2451 | |
254 | |
255 (* == version hat -b) | |
256 | |
257 | |
228 | 258 |
229 | 259 |
230 cut(1) in Version 8 Unix | 260 cut(1) in Version 8 Unix |
231 ``In data base parlance, it projects a relation.'' | 261 ``In data base parlance, it projects a relation.'' |
262 | |
263 | |
264 | |
265 Autoreninfo | |
266 | |
267 Markus Schnalke interessiert sich fuer die Hintergruende | |
268 von Unix und seinen Werkzeugen. Fuer die Erarbeitung dieses | |
269 Textes wurde er regelrecht zum Historiker. | |
270 | |
271 | |
272 Lizenz | |
273 CC0 (und kann damit auch unter CC BY-SA 4.0 Unported | |
274 veroeffentlicht werden) |