home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume20 / cgrep2 / part01 next >
SHell self-extracting ARchive  |  1991-07-11  |  8.7 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: SHell self-extracting ARchive (archive/shar).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file ASCII text default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 63 6f 6d 70 |Newsgrou|ps: comp|
|00000010| 2e 73 6f 75 72 63 65 73 | 2e 6d 69 73 63 2c 63 6f |.sources|.misc,co|
|00000020| 6d 70 2e 6c 61 6e 67 2e | 70 65 72 6c 0a 46 72 6f |mp.lang.|perl.Fro|
|00000030| 6d 3a 20 4c 75 74 7a 20 | 50 72 65 63 68 65 6c 74 |m: Lutz |Prechelt|
|00000040| 20 3c 70 72 65 63 68 65 | 6c 74 40 69 34 31 73 31 | <preche|lt@i41s1|
|00000050| 34 2e 69 72 61 2e 75 6b | 61 2e 64 65 3e 0a 53 75 |4.ira.uk|a.de>.Su|
|00000060| 62 6a 65 63 74 3a 20 20 | 76 32 30 69 30 39 32 3a |bject: |v20i092:|
|00000070| 20 20 63 67 72 65 70 32 | 20 2d 20 63 6f 6e 74 65 | cgrep2| - conte|
|00000080| 78 74 20 67 72 65 70 20 | 69 6e 20 70 65 72 6c 2c |xt grep |in perl,|
|00000090| 20 76 65 72 73 69 6f 6e | 20 32 2c 20 50 61 72 74 | version| 2, Part|
|000000a0| 30 31 2f 30 31 0a 4d 65 | 73 73 61 67 65 2d 49 44 |01/01.Me|ssage-ID|
|000000b0| 3a 20 3c 31 39 39 31 4a | 75 6c 31 30 2e 30 32 30 |: <1991J|ul10.020|
|000000c0| 35 34 33 2e 31 37 32 39 | 36 40 73 70 61 72 6b 79 |543.1729|6@sparky|
|000000d0| 2e 49 4d 44 2e 53 74 65 | 72 6c 69 6e 67 2e 43 4f |.IMD.Ste|rling.CO|
|000000e0| 4d 3e 0a 58 2d 4d 64 34 | 2d 53 69 67 6e 61 74 75 |M>.X-Md4|-Signatu|
|000000f0| 72 65 3a 20 66 65 31 65 | 33 66 38 66 62 34 31 65 |re: fe1e|3f8fb41e|
|00000100| 62 39 62 66 38 64 66 32 | 31 36 35 37 65 36 33 64 |b9bf8df2|1657e63d|
|00000110| 31 35 35 34 0a 44 61 74 | 65 3a 20 57 65 64 2c 20 |1554.Dat|e: Wed, |
|00000120| 31 30 20 4a 75 6c 20 31 | 39 39 31 20 30 32 3a 30 |10 Jul 1|991 02:0|
|00000130| 35 3a 34 33 20 47 4d 54 | 0a 41 70 70 72 6f 76 65 |5:43 GMT|.Approve|
|00000140| 64 3a 20 6b 65 6e 74 40 | 73 70 61 72 6b 79 2e 69 |d: kent@|sparky.i|
|00000150| 6d 64 2e 73 74 65 72 6c | 69 6e 67 2e 63 6f 6d 0a |md.sterl|ing.com.|
|00000160| 0a 53 75 62 6d 69 74 74 | 65 64 2d 62 79 3a 20 4c |.Submitt|ed-by: L|
|00000170| 75 74 7a 20 50 72 65 63 | 68 65 6c 74 20 3c 70 72 |utz Prec|helt <pr|
|00000180| 65 63 68 65 6c 74 40 69 | 34 31 73 31 34 2e 69 72 |echelt@i|41s14.ir|
|00000190| 61 2e 75 6b 61 2e 64 65 | 3e 0a 50 6f 73 74 69 6e |a.uka.de|>.Postin|
|000001a0| 67 2d 6e 75 6d 62 65 72 | 3a 20 56 6f 6c 75 6d 65 |g-number|: Volume|
|000001b0| 20 32 30 2c 20 49 73 73 | 75 65 20 39 32 0a 41 72 | 20, Iss|ue 92.Ar|
|000001c0| 63 68 69 76 65 2d 6e 61 | 6d 65 3a 20 63 67 72 65 |chive-na|me: cgre|
|000001d0| 70 32 2f 70 61 72 74 30 | 31 0a 53 75 70 65 72 73 |p2/part0|1.Supers|
|000001e0| 65 64 65 73 3a 20 63 67 | 72 65 70 3a 20 56 6f 6c |edes: cg|rep: Vol|
|000001f0| 75 6d 65 20 32 30 2c 20 | 49 73 73 75 65 20 38 38 |ume 20, |Issue 88|
|00000200| 0a 0a 41 20 66 65 77 20 | 64 61 79 73 20 61 67 6f |..A few |days ago|
|00000210| 20 49 20 70 6f 73 74 65 | 64 20 27 63 67 72 65 70 | I poste|d 'cgrep|
|00000220| 27 2c 20 56 65 72 73 69 | 6f 6e 20 31 2e 0a 49 20 |', Versi|on 1..I |
|00000230| 67 6f 74 20 73 6f 6d 65 | 20 66 65 65 64 62 61 63 |got some| feedbac|
|00000240| 6b 20 73 69 6e 63 65 20 | 74 68 65 6e 20 61 6e 64 |k since |then and|
|00000250| 20 77 6f 72 6b 65 64 20 | 6f 76 65 72 20 69 74 3b | worked |over it;|
|00000260| 0a 68 65 72 65 20 69 73 | 20 61 6e 20 75 70 67 72 |.here is| an upgr|
|00000270| 61 64 65 2e 20 49 20 74 | 68 69 6e 6b 20 74 68 69 |ade. I t|hink thi|
|00000280| 73 20 77 69 6c 6c 20 64 | 6f 20 66 6f 72 20 61 20 |s will d|o for a |
|00000290| 77 68 69 6c 65 2e 0a 0a | 48 45 52 45 20 57 45 20 |while...|HERE WE |
|000002a0| 47 4f 3a 0a 0a 54 68 65 | 20 66 6f 6c 6c 6f 77 69 |GO:..The| followi|
|000002b0| 6e 67 20 69 73 20 76 65 | 72 73 69 6f 6e 20 32 20 |ng is ve|rsion 2 |
|000002c0| 6f 66 20 63 67 72 65 70 | 20 28 61 20 50 65 72 6c |of cgrep| (a Perl|
|000002d0| 20 73 63 72 69 70 74 29 | 2e 0a 63 67 72 65 70 20 | script)|..cgrep |
|000002e0| 69 73 20 61 20 67 72 65 | 70 20 74 68 61 74 20 67 |is a gre|p that g|
|000002f0| 69 76 65 73 20 79 6f 75 | 20 61 20 6e 75 6d 62 65 |ives you| a numbe|
|00000300| 72 20 6f 66 20 63 6f 6e | 74 65 78 74 20 6c 69 6e |r of con|text lin|
|00000310| 65 73 20 61 6c 6f 6e 67 | 20 77 69 74 68 20 74 68 |es along| with th|
|00000320| 65 20 0a 6d 61 74 63 68 | 69 6e 67 20 6c 69 6e 65 |e .match|ing line|
|00000330| 2e 0a 0a 54 68 65 20 66 | 6f 6c 6c 6f 77 69 6e 67 |...The f|ollowing|
|00000340| 20 63 68 61 6e 67 65 73 | 20 6f 63 63 75 72 65 64 | changes| occured|
|00000350| 20 69 6e 20 72 65 73 70 | 65 63 74 20 74 6f 20 76 | in resp|ect to v|
|00000360| 65 72 73 69 6f 6e 20 31 | 3a 0a 0a 20 20 49 20 61 |ersion 1|:.. I a|
|00000370| 64 64 65 64 20 6f 70 74 | 69 6f 6e 73 0a 20 20 20 |dded opt|ions. |
|00000380| 20 2d 69 20 28 69 67 6e | 6f 72 65 20 63 61 73 65 | -i (ign|ore case|
|00000390| 29 0a 20 20 20 20 2d 63 | 20 28 63 6f 75 6e 74 20 |). -c| (count |
|000003a0| 6d 61 74 63 68 65 73 20 | 61 6c 73 6f 29 0a 0a 20 |matches |also).. |
|000003b0| 20 64 6f 63 75 6d 65 6e | 74 65 64 20 6f 70 74 69 | documen|ted opti|
|000003c0| 6f 6e 0a 20 20 20 20 2d | 65 20 28 65 6e 64 20 74 |on. -|e (end t|
|000003d0| 68 65 20 6c 69 73 74 20 | 6f 66 20 6f 70 74 69 6f |he list |of optio|
|000003e0| 6e 73 29 0a 0a 20 20 72 | 65 6d 6f 76 65 64 20 61 |ns).. r|emoved a|
|000003f0| 20 62 75 67 20 69 6e 20 | 6f 70 74 69 6f 6e 0a 20 | bug in |option. |
|00000400| 20 20 20 2d 6e 20 77 68 | 69 63 68 20 67 61 76 65 | -n wh|ich gave|
|00000410| 20 77 72 6f 6e 67 20 6c | 69 6e 65 20 6e 75 6d 62 | wrong l|ine numb|
|00000420| 65 72 73 20 69 6e 20 70 | 72 65 63 6f 6e 74 65 78 |ers in p|recontex|
|00000430| 74 0a 0a 20 20 61 6e 64 | 20 70 6f 6c 69 73 68 65 |t.. and| polishe|
|00000440| 64 20 61 6c 6c 20 61 20 | 62 69 74 2e 0a 0a 46 6f |d all a |bit...Fo|
|00000450| 72 20 65 78 61 63 74 20 | 75 73 61 67 65 2c 20 73 |r exact |usage, s|
|00000460| 65 65 20 74 68 65 20 6d | 65 73 73 61 67 65 20 69 |ee the m|essage i|
|00000470| 6e 20 74 68 65 20 62 6f | 64 79 20 6f 66 20 74 68 |n the bo|dy of th|
|00000480| 65 20 73 63 72 69 70 74 | 2e 0a 59 6f 75 20 77 69 |e script|..You wi|
|00000490| 6c 6c 20 70 72 6f 62 61 | 62 6c 79 20 68 61 76 65 |ll proba|bly have|
|000004a0| 20 74 6f 20 65 64 69 74 | 20 74 68 65 20 66 69 72 | to edit| the fir|
|000004b0| 73 74 20 6c 69 6e 65 20 | 6f 66 20 74 68 65 20 73 |st line |of the s|
|000004c0| 63 72 69 70 74 2c 0a 74 | 6f 20 74 65 6c 6c 20 69 |cript,.t|o tell i|
|000004d0| 74 20 77 68 65 72 65 20 | 79 6f 75 72 20 27 70 65 |t where |your 'pe|
|000004e0| 72 6c 27 20 72 65 73 69 | 64 65 73 2e 0a 0a 20 20 |rl' resi|des... |
|000004f0| 20 4c 75 74 7a 0a 0a 4c | 75 74 7a 20 50 72 65 63 | Lutz..L|utz Prec|
|00000500| 68 65 6c 74 20 20 20 28 | 2b 2b 34 39 2f 37 32 31 |helt (|++49/721|
|00000510| 2f 36 30 38 2d 34 33 31 | 37 2c 20 20 46 41 58 3a |/608-431|7, FAX:|
|00000520| 20 2b 2b 34 39 2f 37 32 | 31 2f 36 39 37 37 36 30 | ++49/72|1/697760|
|00000530| 29 0a 49 6e 73 74 69 74 | 75 74 20 66 75 65 72 20 |).Instit|ut fuer |
|00000540| 50 72 6f 67 72 61 6d 6d | 73 74 72 75 6b 74 75 72 |Programm|struktur|
|00000550| 65 6e 20 75 6e 64 20 44 | 61 74 65 6e 6f 72 67 61 |en und D|atenorga|
|00000560| 6e 69 73 61 74 69 6f 6e | 0a 55 6e 69 76 65 72 73 |nisation|.Univers|
|00000570| 69 74 61 65 74 20 4b 61 | 72 6c 73 72 75 68 65 3b |itaet Ka|rlsruhe;|
|00000580| 20 20 44 2d 37 35 30 30 | 20 4b 61 72 6c 73 72 75 | D-7500| Karlsru|
|00000590| 68 65 20 31 3b 20 20 47 | 65 72 6d 61 6e 79 0a 70 |he 1; G|ermany.p|
|000005a0| 72 65 63 68 65 6c 74 40 | 69 72 61 2e 75 6b 61 2e |rechelt@|ira.uka.|
|000005b0| 64 65 20 20 6f 72 20 20 | 70 72 65 63 68 65 6c 74 |de or |prechelt|
|000005c0| 21 69 72 61 2e 75 6b 61 | 2e 64 65 40 72 65 6c 61 |!ira.uka|.de@rela|
|000005d0| 79 2e 63 73 6e 65 74 0a | 2d 2d 2d 2d 2d 2d 2d 2d |y.csnet.|--------|
|000005e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000005f0| 2d 2d 2d 2d 2d 20 63 75 | 74 20 68 65 72 65 20 2d |----- cu|t here -|
|00000600| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000610| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000620| 2d 2d 0a 23 21 20 2f 62 | 69 6e 2f 73 68 0a 23 20 |--.#! /b|in/sh.# |
|00000630| 54 68 69 73 20 69 73 20 | 61 20 73 68 65 6c 6c 20 |This is |a shell |
|00000640| 61 72 63 68 69 76 65 2e | 20 20 52 65 6d 6f 76 65 |archive.| Remove|
|00000650| 20 61 6e 79 74 68 69 6e | 67 20 62 65 66 6f 72 65 | anythin|g before|
|00000660| 20 74 68 69 73 20 6c 69 | 6e 65 2c 20 74 68 65 6e | this li|ne, then|
|00000670| 20 75 6e 70 61 63 6b 0a | 23 20 69 74 20 62 79 20 | unpack.|# it by |
|00000680| 73 61 76 69 6e 67 20 69 | 74 20 69 6e 74 6f 20 61 |saving i|t into a|
|00000690| 20 66 69 6c 65 20 61 6e | 64 20 74 79 70 69 6e 67 | file an|d typing|
|000006a0| 20 22 73 68 20 66 69 6c | 65 22 2e 20 20 54 6f 20 | "sh fil|e". To |
|000006b0| 6f 76 65 72 77 72 69 74 | 65 20 65 78 69 73 74 69 |overwrit|e existi|
|000006c0| 6e 67 0a 23 20 66 69 6c | 65 73 2c 20 74 79 70 65 |ng.# fil|es, type|
|000006d0| 20 22 73 68 20 66 69 6c | 65 20 2d 63 22 2e 20 20 | "sh fil|e -c". |
|000006e0| 59 6f 75 20 63 61 6e 20 | 61 6c 73 6f 20 66 65 65 |You can |also fee|
|000006f0| 64 20 74 68 69 73 20 61 | 73 20 73 74 61 6e 64 61 |d this a|s standa|
|00000700| 72 64 20 69 6e 70 75 74 | 20 76 69 61 0a 23 20 75 |rd input| via.# u|
|00000710| 6e 73 68 61 72 2c 20 6f | 72 20 62 79 20 74 79 70 |nshar, o|r by typ|
|00000720| 69 6e 67 20 22 73 68 20 | 3c 66 69 6c 65 22 2c 20 |ing "sh |<file", |
|00000730| 65 2e 67 2e 2e 20 20 49 | 66 20 74 68 69 73 20 61 |e.g.. I|f this a|
|00000740| 72 63 68 69 76 65 20 69 | 73 20 63 6f 6d 70 6c 65 |rchive i|s comple|
|00000750| 74 65 2c 20 79 6f 75 0a | 23 20 77 69 6c 6c 20 73 |te, you.|# will s|
|00000760| 65 65 20 74 68 65 20 66 | 6f 6c 6c 6f 77 69 6e 67 |ee the f|ollowing|
|00000770| 20 6d 65 73 73 61 67 65 | 20 61 74 20 74 68 65 20 | message| at the |
|00000780| 65 6e 64 3a 0a 23 09 09 | 22 45 6e 64 20 6f 66 20 |end:.#..|"End of |
|00000790| 73 68 65 6c 6c 20 61 72 | 63 68 69 76 65 2e 22 0a |shell ar|chive.".|
|000007a0| 23 20 43 6f 6e 74 65 6e | 74 73 3a 20 20 63 67 72 |# Conten|ts: cgr|
|000007b0| 65 70 0a 23 20 57 72 61 | 70 70 65 64 20 62 79 20 |ep.# Wra|pped by |
|000007c0| 70 72 65 63 68 65 6c 74 | 40 44 6a 69 62 6f 75 74 |prechelt|@Djibout|
|000007d0| 69 20 6f 6e 20 4d 6f 6e | 20 4a 75 6c 20 20 38 20 |i on Mon| Jul 8 |
|000007e0| 31 32 3a 34 39 3a 34 30 | 20 31 39 39 31 0a 50 41 |12:49:40| 1991.PA|
|000007f0| 54 48 3d 2f 62 69 6e 3a | 2f 75 73 72 2f 62 69 6e |TH=/bin:|/usr/bin|
|00000800| 3a 2f 75 73 72 2f 75 63 | 62 20 3b 20 65 78 70 6f |:/usr/uc|b ; expo|
|00000810| 72 74 20 50 41 54 48 0a | 69 66 20 74 65 73 74 20 |rt PATH.|if test |
|00000820| 2d 66 20 27 63 67 72 65 | 70 27 20 2d 61 20 22 24 |-f 'cgre|p' -a "$|
|00000830| 7b 31 7d 22 20 21 3d 20 | 22 2d 63 22 20 3b 20 74 |{1}" != |"-c" ; t|
|00000840| 68 65 6e 20 0a 20 20 65 | 63 68 6f 20 73 68 61 72 |hen . e|cho shar|
|00000850| 3a 20 57 69 6c 6c 20 6e | 6f 74 20 63 6c 6f 62 62 |: Will n|ot clobb|
|00000860| 65 72 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |er exist|ing file|
|00000870| 20 5c 22 27 63 67 72 65 | 70 27 5c 22 0a 65 6c 73 | \"'cgre|p'\".els|
|00000880| 65 0a 65 63 68 6f 20 73 | 68 61 72 3a 20 45 78 74 |e.echo s|har: Ext|
|00000890| 72 61 63 74 69 6e 67 20 | 5c 22 27 63 67 72 65 70 |racting |\"'cgrep|
|000008a0| 27 5c 22 20 5c 28 35 39 | 30 34 20 63 68 61 72 61 |'\" \(59|04 chara|
|000008b0| 63 74 65 72 73 5c 29 0a | 73 65 64 20 22 73 2f 5e |cters\).|sed "s/^|
|000008c0| 58 2f 2f 22 20 3e 27 63 | 67 72 65 70 27 20 3c 3c |X//" >'c|grep' <<|
|000008d0| 27 45 4e 44 5f 4f 46 5f | 46 49 4c 45 27 0a 58 23 |'END_OF_|FILE'.X#|
|000008e0| 21 2f 74 6f 6f 6c 73 2f | 62 69 6e 2f 70 65 72 6c |!/tools/|bin/perl|
|000008f0| 0a 58 23 0a 58 23 20 20 | 20 20 43 6f 70 79 72 69 |.X#.X# | Copyri|
|00000900| 67 68 74 20 28 43 29 20 | 31 39 39 31 20 62 79 20 |ght (C) |1991 by |
|00000910| 4c 75 74 7a 20 50 72 65 | 63 68 65 6c 74 2c 20 4b |Lutz Pre|chelt, K|
|00000920| 61 72 6c 73 72 75 68 65 | 0a 58 23 0a 58 23 20 20 |arlsruhe|.X#.X# |
|00000930| 20 20 54 68 69 73 20 70 | 72 6f 67 72 61 6d 20 69 | This p|rogram i|
|00000940| 73 20 66 72 65 65 20 73 | 6f 66 74 77 61 72 65 3b |s free s|oftware;|
|00000950| 20 79 6f 75 20 63 61 6e | 20 72 65 64 69 73 74 72 | you can| redistr|
|00000960| 69 62 75 74 65 20 69 74 | 20 61 6e 64 2f 6f 72 20 |ibute it| and/or |
|00000970| 6d 6f 64 69 66 79 0a 58 | 23 20 20 20 20 69 74 20 |modify.X|# it |
|00000980| 75 6e 64 65 72 20 74 68 | 65 20 74 65 72 6d 73 20 |under th|e terms |
|00000990| 6f 66 20 74 68 65 20 47 | 4e 55 20 47 65 6e 65 72 |of the G|NU Gener|
|000009a0| 61 6c 20 50 75 62 6c 69 | 63 20 4c 69 63 65 6e 73 |al Publi|c Licens|
|000009b0| 65 20 61 73 20 70 75 62 | 6c 69 73 68 65 64 20 62 |e as pub|lished b|
|000009c0| 79 0a 58 23 20 20 20 20 | 74 68 65 20 46 72 65 65 |y.X# |the Free|
|000009d0| 20 53 6f 66 74 77 61 72 | 65 20 46 6f 75 6e 64 61 | Softwar|e Founda|
|000009e0| 74 69 6f 6e 3b 20 65 69 | 74 68 65 72 20 76 65 72 |tion; ei|ther ver|
|000009f0| 73 69 6f 6e 20 31 2c 20 | 6f 72 20 28 61 74 20 79 |sion 1, |or (at y|
|00000a00| 6f 75 72 20 6f 70 74 69 | 6f 6e 29 0a 58 23 20 20 |our opti|on).X# |
|00000a10| 20 20 61 6e 79 20 6c 61 | 74 65 72 20 76 65 72 73 | any la|ter vers|
|00000a20| 69 6f 6e 2e 0a 58 23 20 | 20 20 20 54 68 69 73 20 |ion..X# | This |
|00000a30| 70 72 6f 67 72 61 6d 20 | 69 73 20 64 69 73 74 72 |program |is distr|
|00000a40| 69 62 75 74 65 64 20 69 | 6e 20 74 68 65 20 68 6f |ibuted i|n the ho|
|00000a50| 70 65 20 74 68 61 74 20 | 69 74 20 77 69 6c 6c 20 |pe that |it will |
|00000a60| 62 65 20 75 73 65 66 75 | 6c 2c 0a 58 23 20 20 20 |be usefu|l,.X# |
|00000a70| 20 62 75 74 20 57 49 54 | 48 4f 55 54 20 41 4e 59 | but WIT|HOUT ANY|
|00000a80| 20 57 41 52 52 41 4e 54 | 59 3b 20 77 69 74 68 6f | WARRANT|Y; witho|
|00000a90| 75 74 20 65 76 65 6e 20 | 74 68 65 20 69 6d 70 6c |ut even |the impl|
|00000aa0| 69 65 64 20 77 61 72 72 | 61 6e 74 79 20 6f 66 0a |ied warr|anty of.|
|00000ab0| 58 23 20 20 20 20 4d 45 | 52 43 48 41 4e 54 41 42 |X# ME|RCHANTAB|
|00000ac0| 49 4c 49 54 59 20 6f 72 | 20 46 49 54 4e 45 53 53 |ILITY or| FITNESS|
|00000ad0| 20 46 4f 52 20 41 20 50 | 41 52 54 49 43 55 4c 41 | FOR A P|ARTICULA|
|00000ae0| 52 20 50 55 52 50 4f 53 | 45 2e 20 20 53 65 65 20 |R PURPOS|E. See |
|00000af0| 74 68 65 0a 58 23 20 20 | 20 20 47 4e 55 20 47 65 |the.X# | GNU Ge|
|00000b00| 6e 65 72 61 6c 20 50 75 | 62 6c 69 63 20 4c 69 63 |neral Pu|blic Lic|
|00000b10| 65 6e 73 65 20 66 6f 72 | 20 6d 6f 72 65 20 64 65 |ense for| more de|
|00000b20| 74 61 69 6c 73 2e 0a 58 | 23 20 20 20 20 49 66 20 |tails..X|# If |
|00000b30| 79 6f 75 20 64 6f 6e 27 | 74 20 68 61 76 65 20 61 |you don'|t have a|
|00000b40| 20 63 6f 70 79 20 6f 66 | 20 74 68 65 20 47 4e 55 | copy of| the GNU|
|00000b50| 20 47 65 6e 65 72 61 6c | 20 50 75 62 6c 69 63 20 | General| Public |
|00000b60| 4c 69 63 65 6e 73 65 20 | 77 72 69 74 65 20 74 6f |License |write to|
|00000b70| 0a 58 23 20 20 20 20 46 | 72 65 65 20 53 6f 66 74 |.X# F|ree Soft|
|00000b80| 77 61 72 65 20 46 6f 75 | 6e 64 61 74 69 6f 6e 2c |ware Fou|ndation,|
|00000b90| 20 49 6e 63 2e 2c 20 36 | 37 35 20 4d 61 73 73 20 | Inc., 6|75 Mass |
|00000ba0| 41 76 65 2c 20 43 61 6d | 62 72 69 64 67 65 2c 20 |Ave, Cam|bridge, |
|00000bb0| 4d 41 20 30 32 31 33 39 | 2c 20 55 53 41 2e 0a 58 |MA 02139|, USA..X|
|00000bc0| 0a 58 23 20 56 65 72 73 | 69 6f 6e 3a 20 20 20 20 |.X# Vers|ion: |
|00000bd0| 20 32 2c 20 20 50 61 74 | 63 68 6c 65 76 65 6c 20 | 2, Pat|chlevel |
|00000be0| 30 0a 58 23 20 41 75 74 | 68 6f 72 3a 20 20 20 20 |0.X# Aut|hor: |
|00000bf0| 20 20 4c 75 74 7a 20 50 | 72 65 63 68 65 6c 74 20 | Lutz P|rechelt |
|00000c00| 28 70 72 65 63 68 65 6c | 74 40 69 72 61 2e 75 6b |(prechel|t@ira.uk|
|00000c10| 61 2e 64 65 29 2c 20 32 | 33 2e 30 33 2e 39 31 0a |a.de), 2|3.03.91.|
|00000c20| 58 23 20 43 6f 72 72 65 | 63 74 69 6f 6e 20 20 20 |X# Corre|ction |
|00000c30| 62 79 20 53 72 69 64 68 | 61 72 20 56 61 73 75 64 |by Sridh|ar Vasud|
|00000c40| 65 76 61 6e 2c 20 30 33 | 2e 30 37 2e 39 31 0a 58 |evan, 03|.07.91.X|
|00000c50| 23 20 4c 61 73 74 20 43 | 68 61 6e 67 65 3a 20 4c |# Last C|hange: L|
|00000c60| 75 74 7a 20 50 72 65 63 | 68 65 6c 74 2c 20 30 34 |utz Prec|helt, 04|
|00000c70| 2e 30 37 2e 39 31 0a 58 | 23 0a 58 23 20 55 73 61 |.07.91.X|#.X# Usa|
|00000c80| 67 65 3a 20 73 65 65 20 | 6d 65 73 73 61 67 65 20 |ge: see |message |
|00000c90| 61 74 20 22 64 69 65 22 | 20 62 65 6c 6f 77 2e 0a |at "die"| below..|
|00000ca0| 58 0a 58 23 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 20 63 |X.X#----|------ c|
|00000cb0| 6f 6e 73 74 61 6e 74 73 | 3a 0a 58 24 69 6e 66 69 |onstants|:.X$infi|
|00000cc0| 6e 69 74 79 20 20 20 20 | 20 20 20 20 20 3d 20 31 |nity | = 1|
|00000cd0| 30 30 30 30 3b 0a 58 0a | 58 23 2d 2d 2d 2d 2d 2d |0000;.X.|X#------|
|00000ce0| 2d 2d 2d 2d 20 56 61 72 | 69 61 62 6c 65 73 3a 0a |---- Var|iables:.|
|00000cf0| 58 24 64 65 6c 69 6d 69 | 74 65 72 73 74 72 69 6e |X$delimi|terstrin|
|00000d00| 67 20 20 3d 20 22 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |g = "--|--------|
|00000d10| 2d 5c 6e 22 3b 0a 58 24 | 6d 61 74 63 68 65 73 20 |-\n";.X$|matches |
|00000d20| 20 20 20 20 20 20 20 20 | 20 3d 20 30 3b 0a 58 24 | | = 0;.X$|
|00000d30| 70 72 65 63 6f 6e 74 65 | 78 74 20 20 20 20 20 20 |preconte|xt |
|00000d40| 20 3d 20 32 3b 0a 58 24 | 70 6f 73 74 63 6f 6e 74 | = 2;.X$|postcont|
|00000d50| 65 78 74 20 20 20 20 20 | 20 3d 20 32 3b 0a 58 24 |ext | = 2;.X$|
|00000d60| 77 72 6f 6e 67 5f 6f 70 | 74 69 6f 6e 20 20 20 20 |wrong_op|tion |
|00000d70| 20 3d 20 30 3b 0a 58 0a | 58 23 2d 2d 2d 2d 2d 2d | = 0;.X.|X#------|
|00000d80| 2d 2d 2d 2d 20 62 6f 6f | 6c 65 61 6e 20 4f 70 74 |---- boo|lean Opt|
|00000d90| 69 6f 6e 73 3a 0a 58 24 | 70 61 72 61 67 72 61 70 |ions:.X$|paragrap|
|00000da0| 68 6d 6f 64 65 20 20 20 | 20 3d 20 30 3b 0a 58 24 |hmode | = 0;.X$|
|00000db0| 63 6f 75 6e 74 5f 6d 61 | 74 63 68 65 73 20 20 20 |count_ma|tches |
|00000dc0| 20 3d 20 30 3b 0a 58 24 | 69 67 6e 6f 72 65 63 61 | = 0;.X$|ignoreca|
|00000dd0| 73 65 20 20 20 20 20 20 | 20 3d 20 30 3b 0a 58 24 |se | = 0;.X$|
|00000de0| 77 69 74 68 6c 69 6e 65 | 6e 75 6d 62 65 72 20 20 |withline|number |
|00000df0| 20 3d 20 30 3b 0a 58 24 | 77 69 74 68 66 69 6c 65 | = 0;.X$|withfile|
|00000e00| 6e 61 6d 65 20 20 20 20 | 20 3d 20 30 3b 0a 58 24 |name | = 0;.X$|
|00000e10| 72 65 76 65 72 73 65 6d | 6f 64 65 20 20 20 20 20 |reversem|ode |
|00000e20| 20 3d 20 30 3b 0a 58 0a | 58 23 20 24 65 6e 64 70 | = 0;.X.|X# $endp|
|00000e30| 61 72 61 20 3d 20 27 5c | 53 2e 2a 5c 6e 27 3b 0a |ara = '\|S.*\n';.|
|00000e40| 58 0a 58 23 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 20 53 |X.X#----|------ S|
|00000e50| 75 62 72 6f 75 74 69 6e | 65 73 3a 0a 58 0a 58 73 |ubroutin|es:.X.Xs|
|00000e60| 75 62 20 6d 61 74 63 68 | 5f 66 6f 75 6e 64 20 7b |ub match|_found {|
|00000e70| 0a 58 20 20 23 62 61 64 | 20 73 74 79 6c 65 3a 20 |.X #bad| style: |
|00000e80| 75 73 65 73 20 74 68 65 | 20 67 6c 6f 62 61 6c 20 |uses the| global |
|00000e90| 76 61 72 69 61 62 6c 65 | 73 20 24 69 67 6e 6f 72 |variable|s $ignor|
|00000ea0| 65 63 61 73 65 2c 20 24 | 72 65 76 65 72 73 65 6d |ecase, $|reversem|
|00000eb0| 6f 64 65 2c 20 24 63 75 | 72 2c 20 24 70 61 74 0a |ode, $cu|r, $pat.|
|00000ec0| 58 20 20 69 66 20 28 24 | 69 67 6e 6f 72 65 63 61 |X if ($|ignoreca|
|00000ed0| 73 65 20 21 3d 20 30 29 | 20 7b 0a 58 20 20 20 20 |se != 0)| {.X |
|00000ee0| 28 24 72 65 76 65 72 73 | 65 6d 6f 64 65 20 3d 3d |($revers|emode ==|
|00000ef0| 20 31 20 3f 20 24 63 75 | 72 20 21 7e 20 2f 24 70 | 1 ? $cu|r !~ /$p|
|00000f00| 61 74 2f 69 6f 20 3a 20 | 24 63 75 72 20 3d 7e 20 |at/io : |$cur =~ |
|00000f10| 2f 24 70 61 74 2f 69 6f | 29 3b 0a 58 20 20 7d 0a |/$pat/io|);.X }.|
|00000f20| 58 20 20 65 6c 73 65 20 | 7b 0a 58 20 20 20 20 28 |X else |{.X (|
|00000f30| 24 72 65 76 65 72 73 65 | 6d 6f 64 65 20 3d 3d 20 |$reverse|mode == |
|00000f40| 31 20 3f 20 24 63 75 72 | 20 21 7e 20 2f 24 70 61 |1 ? $cur| !~ /$pa|
|00000f50| 74 2f 6f 20 3a 20 24 63 | 75 72 20 3d 7e 20 2f 24 |t/o : $c|ur =~ /$|
|00000f60| 70 61 74 2f 6f 29 3b 0a | 58 20 20 7d 0a 58 7d 0a |pat/o);.|X }.X}.|
|00000f70| 58 0a 58 73 75 62 20 73 | 68 6f 77 6c 69 6e 65 20 |X.Xsub s|howline |
|00000f80| 7b 0a 58 20 20 69 66 20 | 28 24 77 69 74 68 66 69 |{.X if |($withfi|
|00000f90| 6c 65 6e 61 6d 65 20 21 | 3d 20 30 29 20 7b 0a 58 |lename !|= 0) {.X|
|00000fa0| 20 20 20 20 70 72 69 6e | 74 66 20 28 22 5c 22 25 | prin|tf ("\"%|
|00000fb0| 73 5c 22 22 2c 20 24 41 | 52 47 56 29 3b 0a 58 20 |s\"", $A|RGV);.X |
|00000fc0| 20 7d 0a 58 20 20 69 66 | 20 28 24 77 69 74 68 66 | }.X if| ($withf|
|00000fd0| 69 6c 65 6e 61 6d 65 20 | 21 3d 20 30 20 26 26 20 |ilename |!= 0 && |
|00000fe0| 24 77 69 74 68 6c 69 6e | 65 6e 75 6d 62 65 72 20 |$withlin|enumber |
|00000ff0| 21 3d 20 30 29 20 7b 0a | 58 20 20 20 20 70 72 69 |!= 0) {.|X pri|
|00001000| 6e 74 20 22 2c 22 3b 0a | 58 20 20 7d 0a 58 20 20 |nt ",";.|X }.X |
|00001010| 69 66 20 28 24 77 69 74 | 68 6c 69 6e 65 6e 75 6d |if ($wit|hlinenum|
|00001020| 62 65 72 20 21 3d 20 30 | 29 20 7b 0a 58 20 20 20 |ber != 0|) {.X |
|00001030| 20 70 72 69 6e 74 66 20 | 28 22 25 34 64 22 2c 20 | printf |("%4d", |
|00001040| 24 5f 5b 31 5d 29 3b 0a | 58 20 20 7d 0a 58 20 20 |$_[1]);.|X }.X |
|00001050| 69 66 20 28 24 77 69 74 | 68 66 69 6c 65 6e 61 6d |if ($wit|hfilenam|
|00001060| 65 20 21 3d 20 30 20 7c | 7c 20 24 77 69 74 68 6c |e != 0 ||| $withl|
|00001070| 69 6e 65 6e 75 6d 62 65 | 72 20 21 3d 20 30 29 20 |inenumbe|r != 0) |
|00001080| 7b 0a 58 20 20 20 20 70 | 72 69 6e 74 20 22 3a 20 |{.X p|rint ": |
|00001090| 22 3b 0a 58 20 20 7d 0a | 58 20 20 70 72 69 6e 74 |";.X }.|X print|
|000010a0| 20 28 24 5f 5b 30 5d 29 | 3b 0a 58 7d 0a 58 0a 58 | ($_[0])|;.X}.X.X|
|000010b0| 0a 58 23 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 20 50 72 |.X#-----|----- Pr|
|000010c0| 6f 63 65 73 73 20 74 68 | 65 20 4f 70 74 69 6f 6e |ocess th|e Option|
|000010d0| 73 3a 0a 58 64 6f 20 7b | 0a 58 20 20 24 73 6f 6d |s:.Xdo {|.X $som|
|000010e0| 65 74 68 69 6e 67 5f 64 | 6f 6e 65 20 3d 20 31 3b |ething_d|one = 1;|
|000010f0| 0a 58 20 20 69 66 20 28 | 24 41 52 47 56 5b 30 5d |.X if (|$ARGV[0]|
|00001100| 20 3d 7e 20 2f 5e 2d 28 | 5c 64 2b 29 24 2f 29 20 | =~ /^-(|\d+)$/) |
|00001110| 7b 0a 58 20 20 20 20 24 | 70 72 65 63 6f 6e 74 65 |{.X $|preconte|
|00001120| 78 74 20 3d 20 24 70 6f | 73 74 63 6f 6e 74 65 78 |xt = $po|stcontex|
|00001130| 74 20 3d 20 24 31 3b 0a | 58 20 20 20 20 73 68 69 |t = $1;.|X shi|
|00001140| 66 74 3b 0a 58 20 20 7d | 0a 58 20 20 65 6c 73 69 |ft;.X }|.X elsi|
|00001150| 66 20 28 24 41 52 47 56 | 5b 30 5d 20 3d 7e 20 2f |f ($ARGV|[0] =~ /|
|00001160| 5e 2d 28 5c 64 2b 29 5b | 5c 2c 5c 2b 5c 2f 5c 3b |^-(\d+)[|\,\+\/\;|
|00001170| 5d 28 5c 64 2b 29 24 2f | 29 20 7b 0a 58 20 20 20 |](\d+)$/|) {.X |
|00001180| 20 24 70 72 65 63 6f 6e | 74 65 78 74 20 20 3d 20 | $precon|text = |
|00001190| 24 31 3b 0a 58 20 20 20 | 20 24 70 6f 73 74 63 6f |$1;.X | $postco|
|000011a0| 6e 74 65 78 74 20 3d 20 | 24 32 3b 0a 58 20 20 20 |ntext = |$2;.X |
|000011b0| 20 73 68 69 66 74 3b 0a | 58 20 20 7d 0a 58 20 20 | shift;.|X }.X |
|000011c0| 65 6c 73 69 66 20 28 24 | 41 52 47 56 5b 30 5d 20 |elsif ($|ARGV[0] |
|000011d0| 3d 7e 20 2f 5e 2d 64 24 | 2f 20 26 26 20 24 23 41 |=~ /^-d$|/ && $#A|
|000011e0| 52 47 56 20 3e 20 30 29 | 20 7b 0a 58 20 20 20 20 |RGV > 0)| {.X |
|000011f0| 24 64 65 6c 69 6d 69 74 | 65 72 73 74 72 69 6e 67 |$delimit|erstring|
|00001200| 20 3d 20 24 41 52 47 56 | 5b 31 5d 3b 0a 58 20 20 | = $ARGV|[1];.X |
|00001210| 20 20 24 64 65 6c 69 6d | 69 74 65 72 73 74 72 69 | $delim|iterstri|
|00001220| 6e 67 20 3d 7e 20 73 2f | 5c 5c 6e 2f 5c 6e 2f 6f |ng =~ s/|\\n/\n/o|
|00001230| 3b 0a 58 20 20 20 20 73 | 68 69 66 74 3b 20 73 68 |;.X s|hift; sh|
|00001240| 69 66 74 3b 0a 58 20 20 | 7d 0a 58 20 20 65 6c 73 |ift;.X |}.X els|
|00001250| 69 66 20 28 24 41 52 47 | 56 5b 30 5d 20 3d 7e 20 |if ($ARG|V[0] =~ |
|00001260| 2f 5e 2d 64 28 2e 2a 29 | 24 2f 29 20 7b 0a 58 20 |/^-d(.*)|$/) {.X |
|00001270| 20 20 20 24 64 65 6c 69 | 6d 69 74 65 72 73 74 72 | $deli|miterstr|
|00001280| 69 6e 67 20 3d 20 24 31 | 3b 0a 58 20 20 20 20 24 |ing = $1|;.X $|
|00001290| 64 65 6c 69 6d 69 74 65 | 72 73 74 72 69 6e 67 20 |delimite|rstring |
|000012a0| 3d 7e 20 73 2f 5c 5c 6e | 2f 5c 6e 2f 6f 3b 0a 58 |=~ s/\\n|/\n/o;.X|
|000012b0| 20 20 20 20 73 68 69 66 | 74 3b 0a 58 20 20 7d 0a | shif|t;.X }.|
|000012c0| 58 20 20 65 6c 73 69 66 | 20 28 24 41 52 47 56 5b |X elsif| ($ARGV[|
|000012d0| 30 5d 20 3d 7e 20 2f 5e | 2d 63 24 2f 29 20 7b 0a |0] =~ /^|-c$/) {.|
|000012e0| 58 20 20 20 20 24 63 6f | 75 6e 74 5f 6d 61 74 63 |X $co|unt_matc|
|000012f0| 68 65 73 20 3d 20 31 3b | 0a 58 20 20 20 20 73 68 |hes = 1;|.X sh|
|00001300| 69 66 74 3b 0a 58 20 20 | 7d 0a 58 20 20 65 6c 73 |ift;.X |}.X els|
|00001310| 69 66 20 28 24 41 52 47 | 56 5b 30 5d 20 3d 7e 20 |if ($ARG|V[0] =~ |
|00001320| 2f 5e 2d 68 24 2f 29 20 | 7b 0a 58 20 20 20 20 24 |/^-h$/) |{.X $|
|00001330| 77 69 74 68 66 69 6c 65 | 6e 61 6d 65 20 3d 20 31 |withfile|name = 1|
|00001340| 3b 0a 58 20 20 20 20 73 | 68 69 66 74 3b 0a 58 20 |;.X s|hift;.X |
|00001350| 20 7d 0a 58 20 20 65 6c | 73 69 66 20 28 24 41 52 | }.X el|sif ($AR|
|00001360| 47 56 5b 30 5d 20 3d 7e | 20 2f 5e 2d 69 24 2f 29 |GV[0] =~| /^-i$/)|
|00001370| 20 7b 0a 58 20 20 20 20 | 24 69 67 6e 6f 72 65 63 | {.X |$ignorec|
|00001380| 61 73 65 20 3d 20 31 3b | 0a 58 20 20 20 20 73 68 |ase = 1;|.X sh|
|00001390| 69 66 74 3b 0a 58 20 20 | 7d 0a 58 20 20 65 6c 73 |ift;.X |}.X els|
|000013a0| 69 66 20 28 24 41 52 47 | 56 5b 30 5d 20 3d 7e 20 |if ($ARG|V[0] =~ |
|000013b0| 2f 5e 2d 6e 24 2f 29 20 | 7b 0a 58 20 20 20 20 24 |/^-n$/) |{.X $|
|000013c0| 77 69 74 68 6c 69 6e 65 | 6e 75 6d 62 65 72 20 3d |withline|number =|
|000013d0| 20 31 3b 0a 58 20 20 20 | 20 73 68 69 66 74 3b 0a | 1;.X | shift;.|
|000013e0| 58 20 20 7d 0a 58 20 20 | 65 6c 73 69 66 20 28 24 |X }.X |elsif ($|
|000013f0| 41 52 47 56 5b 30 5d 20 | 3d 7e 20 2f 5e 2d 70 24 |ARGV[0] |=~ /^-p$|
|00001400| 2f 29 20 7b 0a 58 20 20 | 20 20 24 70 61 72 61 67 |/) {.X | $parag|
|00001410| 72 61 70 68 6d 6f 64 65 | 20 3d 20 31 3b 0a 58 20 |raphmode| = 1;.X |
|00001420| 20 20 20 73 68 69 66 74 | 3b 0a 58 20 20 7d 0a 58 | shift|;.X }.X|
|00001430| 20 20 65 6c 73 69 66 20 | 28 24 41 52 47 56 5b 30 | elsif |($ARGV[0|
|00001440| 5d 20 3d 7e 20 2f 5e 2d | 76 24 2f 29 20 7b 0a 58 |] =~ /^-|v$/) {.X|
|00001450| 20 20 20 20 24 72 65 76 | 65 72 73 65 6d 6f 64 65 | $rev|ersemode|
|00001460| 20 3d 20 31 3b 0a 58 20 | 20 20 20 73 68 69 66 74 | = 1;.X | shift|
|00001470| 3b 0a 58 20 20 7d 0a 58 | 20 20 65 6c 73 69 66 20 |;.X }.X| elsif |
|00001480| 28 24 41 52 47 56 5b 30 | 5d 20 3d 7e 20 2f 5e 2d |($ARGV[0|] =~ /^-|
|00001490| 65 24 2f 29 20 7b 20 23 | 20 65 6e 64 20 6f 70 74 |e$/) { #| end opt|
|000014a0| 69 6f 6e 73 20 28 66 6f | 72 20 65 78 70 72 65 73 |ions (fo|r expres|
|000014b0| 73 69 6f 6e 73 20 73 74 | 61 72 74 69 6e 67 0a 77 |sions st|arting.w|
|000014c0| 69 74 68 20 2d 20 29 0a | 58 20 20 20 20 24 73 6f |ith - ).|X $so|
|000014d0| 6d 65 74 68 69 6e 67 5f | 64 6f 6e 65 20 3d 20 30 |mething_|done = 0|
|000014e0| 3b 0a 58 20 20 20 20 73 | 68 69 66 74 3b 0a 58 20 |;.X s|hift;.X |
|000014f0| 20 7d 0a 58 20 20 65 6c | 73 69 66 20 28 24 41 52 | }.X el|sif ($AR|
|00001500| 47 56 5b 30 5d 20 3d 7e | 20 2f 5e 2d 2f 29 20 7b |GV[0] =~| /^-/) {|
|00001510| 0a 58 20 20 20 20 70 72 | 69 6e 74 66 20 28 22 64 |.X pr|intf ("d|
|00001520| 6f 6e 27 74 20 6b 6e 6f | 77 20 6f 70 74 69 6f 6e |on't kno|w option|
|00001530| 20 27 25 73 27 5c 6e 22 | 2c 20 24 41 52 47 56 5b | '%s'\n"|, $ARGV[|
|00001540| 30 5d 29 3b 0a 58 20 20 | 20 20 24 77 72 6f 6e 67 |0]);.X | $wrong|
|00001550| 5f 6f 70 74 69 6f 6e 20 | 3d 20 31 3b 0a 58 20 20 |_option |= 1;.X |
|00001560| 20 20 24 73 6f 6d 65 74 | 68 69 6e 67 5f 64 6f 6e | $somet|hing_don|
|00001570| 65 20 3d 20 30 3b 0a 58 | 20 20 20 20 73 68 69 66 |e = 0;.X| shif|
|00001580| 74 3b 0a 58 20 20 7d 0a | 58 20 20 65 6c 73 65 20 |t;.X }.|X else |
|00001590| 7b 0a 58 20 20 20 20 24 | 73 6f 6d 65 74 68 69 6e |{.X $|somethin|
|000015a0| 67 5f 64 6f 6e 65 20 3d | 20 30 3b 0a 58 20 20 7d |g_done =| 0;.X }|
|000015b0| 0a 58 7d 20 77 68 69 6c | 65 20 28 24 73 6f 6d 65 |.X} whil|e ($some|
|000015c0| 74 68 69 6e 67 5f 64 6f | 6e 65 29 3b 0a 58 0a 58 |thing_do|ne);.X.X|
|000015d0| 0a 58 23 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 20 55 73 |.X#-----|----- Us|
|000015e0| 61 67 65 20 6d 65 73 73 | 61 67 65 3a 0a 58 69 66 |age mess|age:.Xif|
|000015f0| 20 28 24 23 41 52 47 56 | 20 3d 3d 20 2d 31 20 7c | ($#ARGV| == -1 ||
|00001600| 7c 20 24 77 72 6f 6e 67 | 5f 6f 70 74 69 6f 6e 29 || $wrong|_option)|
|00001610| 20 7b 0a 58 20 20 64 69 | 65 20 22 0a 58 20 20 20 | {.X di|e ".X |
|00001620| 55 73 61 67 65 3a 20 63 | 67 72 65 70 20 5b 2d 70 |Usage: c|grep [-p|
|00001630| 72 65 5b 2c 70 6f 73 74 | 5d 5d 20 5b 2d 70 5d 20 |re[,post|]] [-p] |
|00001640| 5b 2d 76 5d 20 5b 2d 63 | 5d 20 5b 2d 68 5d 20 5b |[-v] [-c|] [-h] [|
|00001650| 2d 6e 5d 20 5b 2d 64 20 | 73 74 72 69 6e 67 5d 20 |-n] [-d |string] |
|00001660| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00001670| 20 20 5b 2d 65 5d 20 70 | 61 74 74 65 72 6e 20 5b | [-e] p|attern [|
|00001680| 66 69 6c 65 2e 2e 2e 5d | 0a 58 0a 58 20 20 20 63 |file...]|.X.X c|
|00001690| 67 72 65 70 20 69 73 20 | 61 20 63 6f 6e 74 65 78 |grep is |a contex|
|000016a0| 74 20 67 72 65 70 2e 20 | 49 74 20 64 69 73 70 6c |t grep. |It displ|
|000016b0| 61 79 73 20 6d 6f 72 65 | 20 74 68 61 6e 20 74 68 |ays more| than th|
|000016c0| 65 20 6f 6e 65 20 6d 61 | 74 63 68 69 6e 67 20 6c |e one ma|tching l|
|000016d0| 69 6e 65 20 66 6f 72 0a | 58 20 20 20 65 76 65 72 |ine for.|X ever|
|000016e0| 79 20 6d 61 74 63 68 20 | 28 32 20 62 65 66 6f 72 |y match |(2 befor|
|000016f0| 65 20 61 6e 64 20 32 20 | 61 66 74 65 72 20 61 73 |e and 2 |after as|
|00001700| 20 64 65 66 61 75 6c 74 | 29 2e 0a 58 0a 58 20 20 | default|)..X.X |
|00001710| 20 2d 33 20 20 20 6d 65 | 61 6e 73 20 64 69 73 70 | -3 me|ans disp|
|00001720| 6c 61 79 20 33 20 6c 69 | 6e 65 73 20 62 65 66 6f |lay 3 li|nes befo|
|00001730| 72 65 20 61 6e 64 20 33 | 20 6c 69 6e 65 73 20 61 |re and 3| lines a|
|00001740| 66 74 65 72 20 74 68 65 | 20 6d 61 74 63 68 20 28 |fter the| match (|
|00001750| 65 2e 67 2e 29 0a 58 20 | 20 20 2d 35 2c 31 32 20 |e.g.).X | -5,12 |
|00001760| 20 6d 65 61 6e 73 20 64 | 69 73 70 6c 61 79 20 35 | means d|isplay 5|
|00001770| 20 6c 69 6e 65 73 20 62 | 65 66 6f 72 65 20 74 68 | lines b|efore th|
|00001780| 65 20 6d 61 74 63 68 20 | 61 6e 64 20 31 32 20 6c |e match |and 12 l|
|00001790| 69 6e 65 73 20 61 66 74 | 65 72 20 28 65 2e 67 2e |ines aft|er (e.g.|
|000017a0| 29 0a 58 20 20 20 2d 70 | 20 20 20 6d 65 61 6e 73 |).X -p| means|
|000017b0| 20 64 69 73 70 6c 61 79 | 20 6f 6e 6c 79 20 61 73 | display| only as|
|000017c0| 20 6d 75 63 68 20 6f 66 | 20 74 68 65 20 63 6f 6e | much of| the con|
|000017d0| 74 65 78 74 20 61 73 20 | 62 65 6c 6f 6e 67 73 20 |text as |belongs |
|000017e0| 74 6f 20 74 68 65 0a 58 | 20 20 20 20 20 20 20 20 |to the.X| |
|000017f0| 63 75 72 72 65 6e 74 20 | 70 61 72 61 67 72 61 70 |current |paragrap|
|00001800| 68 2e 20 28 70 61 72 61 | 67 72 61 70 68 73 20 62 |h. (para|graphs b|
|00001810| 6f 75 6e 64 65 64 20 62 | 79 20 65 6d 70 74 79 20 |ounded b|y empty |
|00001820| 6c 69 6e 65 73 29 0a 58 | 20 20 20 2d 76 20 20 20 |lines).X| -v |
|00001830| 6d 65 61 6e 73 20 69 6e | 76 65 72 74 20 73 65 61 |means in|vert sea|
|00001840| 72 63 68 20 28 64 69 73 | 70 6c 61 79 20 6e 6f 6d |rch (dis|play nom|
|00001850| 61 74 63 68 65 73 29 0a | 58 20 20 20 2d 63 20 20 |atches).|X -c |
|00001860| 20 6d 65 61 6e 73 20 64 | 69 73 70 6c 61 79 20 6e | means d|isplay n|
|00001870| 75 6d 62 65 72 20 6f 66 | 20 6d 61 74 63 68 69 6e |umber of| matchin|
|00001880| 67 20 6c 69 6e 65 73 20 | 61 74 20 74 68 65 20 65 |g lines |at the e|
|00001890| 6e 64 20 6f 66 20 72 75 | 6e 0a 58 20 20 20 2d 68 |nd of ru|n.X -h|
|000018a0| 20 20 20 6d 65 61 6e 73 | 20 74 6f 67 67 6c 65 20 | means| toggle |
|000018b0| 64 69 73 70 6c 61 79 20 | 66 69 6c 65 6e 61 6d 65 |display |filename|
|000018c0| 20 62 65 66 6f 72 65 20 | 65 76 65 72 79 20 6c 69 | before |every li|
|000018d0| 6e 65 0a 58 20 20 20 2d | 69 20 20 20 6d 65 61 6e |ne.X -|i mean|
|000018e0| 73 20 69 67 6e 6f 72 65 | 20 63 61 73 65 20 77 68 |s ignore| case wh|
|000018f0| 65 6e 20 6d 61 74 63 68 | 69 6e 67 20 74 68 65 20 |en match|ing the |
|00001900| 72 65 67 65 78 70 0a 58 | 20 20 20 2d 6e 20 20 20 |regexp.X| -n |
|00001910| 6d 65 61 6e 73 20 64 69 | 73 70 6c 61 79 20 6c 69 |means di|splay li|
|00001920| 6e 65 20 6e 75 6d 62 65 | 72 20 62 65 66 6f 72 65 |ne numbe|r before|
|00001930| 20 65 76 65 72 79 20 6c | 69 6e 65 0a 58 20 20 20 | every l|ine.X |
|00001940| 2d 64 20 73 74 72 69 6e | 67 20 20 6d 65 61 6e 73 |-d strin|g means|
|00001950| 20 75 73 65 20 73 74 72 | 69 6e 67 20 61 73 20 74 | use str|ing as t|
|00001960| 68 65 20 6f 75 74 70 75 | 74 20 64 65 6c 69 6d 69 |he outpu|t delimi|
|00001970| 74 65 72 20 73 74 72 69 | 6e 67 0a 58 20 20 20 2d |ter stri|ng.X -|
|00001980| 65 20 20 20 6d 65 61 6e | 73 20 65 6e 64 20 6f 70 |e mean|s end op|
|00001990| 74 69 6f 6e 73 20 28 69 | 2e 65 2e 20 6e 6f 77 20 |tions (i|.e. now |
|000019a0| 63 6f 6d 65 73 20 74 68 | 65 20 70 61 74 74 65 72 |comes th|e patter|
|000019b0| 6e 2c 20 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |n, .X | |
|000019c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000019d0| 66 6f 72 20 70 61 74 74 | 65 72 6e 73 20 73 74 61 |for patt|erns sta|
|000019e0| 72 74 69 6e 67 20 77 69 | 74 68 20 2d 20 29 0a 58 |rting wi|th - ).X|
|000019f0| 20 20 20 70 61 74 74 65 | 72 6e 20 20 69 73 20 61 | patte|rn is a|
|00001a00| 20 50 65 72 6c 20 72 65 | 67 75 6c 61 72 20 65 78 | Perl re|gular ex|
|00001a10| 70 72 65 73 73 69 6f 6e | 20 28 79 6f 75 20 62 65 |pression| (you be|
|00001a20| 74 74 65 72 20 71 75 6f | 74 65 20 69 74 20 21 29 |tter quo|te it !)|
|00001a30| 0a 58 45 78 69 74 69 6e | 67 22 3b 0a 58 7d 0a 58 |.XExitin|g";.X}.X|
|00001a40| 0a 58 0a 58 69 66 20 28 | 6c 65 6e 67 74 68 20 28 |.X.Xif (|length (|
|00001a50| 40 41 52 47 56 29 20 3e | 20 31 29 20 7b 0a 58 20 |@ARGV) >| 1) {.X |
|00001a60| 20 24 77 69 74 68 66 69 | 6c 65 6e 61 6d 65 20 3d | $withfi|lename =|
|00001a70| 20 21 24 77 69 74 68 66 | 69 6c 65 6e 61 6d 65 3b | !$withf|ilename;|
|00001a80| 0a 58 7d 0a 58 0a 58 0a | 58 23 2d 2d 2d 2d 2d 2d |.X}.X.X.|X#------|
|00001a90| 2d 2d 2d 2d 20 47 65 74 | 20 74 68 65 20 70 61 74 |---- Get| the pat|
|00001aa0| 74 65 72 6e 20 61 6e 64 | 20 70 72 6f 74 65 63 74 |tern and| protect|
|00001ab0| 20 74 68 65 20 64 65 6c | 69 6d 69 74 65 72 2e 0a | the del|imiter..|
|00001ac0| 58 24 70 61 74 20 3d 20 | 73 68 69 66 74 3b 0a 58 |X$pat = |shift;.X|
|00001ad0| 24 70 61 74 20 3d 7e 20 | 73 23 2f 23 5c 5c 2f 23 |$pat =~ |s#/#\\/#|
|00001ae0| 67 3b 0a 58 0a 58 0a 58 | 23 2d 2d 2d 2d 2d 2d 2d |g;.X.X.X|#-------|
|00001af0| 2d 2d 2d 20 63 75 72 72 | 65 6e 74 20 6c 69 6e 65 |--- curr|ent line|
|00001b00| 20 77 69 6c 6c 20 61 6c | 77 61 79 73 20 62 65 20 | will al|ways be |
|00001b10| 61 74 20 65 6e 64 20 6f | 66 20 61 72 72 61 79 2c |at end o|f array,|
|00001b20| 20 69 2e 65 2e 0a 24 61 | 72 79 5b 24 63 75 72 72 | i.e..$a|ry[$curr|
|00001b30| 65 6e 74 70 72 65 5d 0a | 58 24 5f 20 3d 20 3c 3e |entpre].|X$_ = <>|
|00001b40| 3b 0a 58 70 75 73 68 28 | 40 61 72 79 2c 24 5f 29 |;.Xpush(|@ary,$_)|
|00001b50| 3b 0a 58 24 63 75 72 72 | 65 6e 74 70 72 65 20 3d |;.X$curr|entpre =|
|00001b60| 20 30 3b 0a 58 0a 58 23 | 2d 2d 2d 2d 2d 2d 2d 2d | 0;.X.X#|--------|
|00001b70| 2d 2d 20 64 6f 20 74 68 | 65 20 73 65 61 72 63 68 |-- do th|e search|
|00001b80| 0a 58 23 20 75 73 65 20 | 40 61 72 79 20 61 73 20 |.X# use |@ary as |
|00001b90| 61 20 73 69 6c 6f 2c 20 | 73 68 69 66 74 69 6e 67 |a silo, |shifting|
|00001ba0| 20 61 6e 64 20 70 75 73 | 68 69 6e 67 2e 0a 58 23 | and pus|hing..X#|
|00001bb0| 20 74 68 65 20 6c 65 6e | 67 74 68 20 6f 66 20 74 | the len|gth of t|
|00001bc0| 68 65 20 40 61 72 79 20 | 61 74 20 61 6e 79 20 74 |he @ary |at any t|
|00001bd0| 69 6d 65 20 69 73 20 24 | 63 75 72 72 65 6e 74 70 |ime is $|currentp|
|00001be0| 72 65 20 2b 20 31 0a 58 | 23 20 74 68 65 20 63 75 |re + 1.X|# the cu|
|00001bf0| 72 72 65 6e 74 20 6c 69 | 6e 65 20 69 73 20 40 61 |rrent li|ne is @a|
|00001c00| 72 79 5b 24 63 75 72 72 | 65 6e 74 70 72 65 5d 2c |ry[$curr|entpre],|
|00001c10| 20 74 68 65 20 70 6f 73 | 74 63 6f 6e 74 65 78 74 | the pos|tcontext|
|00001c20| 20 69 73 20 6e 6f 74 20 | 68 65 6c 64 20 69 6e 20 | is not |held in |
|00001c30| 40 61 72 79 2e 0a 58 24 | 73 65 71 20 3d 20 30 3b |@ary..X$|seq = 0;|
|00001c40| 0a 58 24 6c 61 73 74 6f | 75 74 70 75 74 20 3d 20 |.X$lasto|utput = |
|00001c50| 24 69 6e 66 69 6e 69 74 | 79 3b 20 20 23 6c 61 73 |$infinit|y; #las|
|00001c60| 74 20 6f 75 74 70 75 74 | 20 69 73 20 69 6e 66 69 |t output| is infi|
|00001c70| 6e 69 74 65 6c 79 20 6d | 61 6e 79 20 6c 69 6e 65 |nitely m|any line|
|00001c80| 73 20 61 67 6f 0a 58 24 | 63 75 72 20 3d 20 40 61 |s ago.X$|cur = @a|
|00001c90| 72 79 5b 30 5d 3b 20 20 | 20 20 20 20 20 23 63 75 |ry[0]; | #cu|
|00001ca0| 72 72 65 6e 74 20 6c 69 | 6e 65 0a 58 77 68 69 6c |rrent li|ne.Xwhil|
|00001cb0| 65 20 28 24 63 75 72 29 | 20 7b 20 20 23 61 73 20 |e ($cur)| { #as |
|00001cc0| 6c 6f 6e 67 20 61 73 20 | 74 68 65 72 65 20 69 73 |long as |there is|
|00001cd0| 20 73 6f 6d 65 74 68 69 | 6e 67 20 74 6f 20 6c 6f | somethi|ng to lo|
|00001ce0| 6f 6b 20 61 74 0a 58 20 | 20 69 66 20 28 26 6d 61 |ok at.X | if (&ma|
|00001cf0| 74 63 68 5f 66 6f 75 6e | 64 28 29 29 20 7b 0a 58 |tch_foun|d()) {.X|
|00001d00| 20 20 20 20 24 6d 61 74 | 63 68 65 73 2b 2b 3b 0a | $mat|ches++;.|
|00001d10| 58 20 20 20 20 69 66 20 | 28 24 6c 61 73 74 6f 75 |X if |($lastou|
|00001d20| 74 70 75 74 20 3c 3d 20 | 24 70 6f 73 74 63 6f 6e |tput <= |$postcon|
|00001d30| 74 65 78 74 29 20 7b 0a | 58 20 20 20 20 20 20 26 |text) {.|X &|
|00001d40| 73 68 6f 77 6c 69 6e 65 | 20 28 24 63 75 72 2c 20 |showline| ($cur, |
|00001d50| 24 2e 29 3b 0a 58 20 20 | 20 20 7d 0a 58 20 20 20 |$.);.X | }.X |
|00001d60| 20 65 6c 73 65 20 7b 0a | 58 20 20 20 20 20 20 70 | else {.|X p|
|00001d70| 72 69 6e 74 20 24 64 65 | 6c 69 6d 69 74 65 72 73 |rint $de|limiters|
|00001d80| 74 72 69 6e 67 20 69 66 | 20 28 24 73 65 71 2b 2b |tring if| ($seq++|
|00001d90| 20 26 26 20 24 70 72 65 | 63 6f 6e 74 65 78 74 20 | && $pre|context |
|00001da0| 2b 20 24 70 6f 73 74 63 | 6f 6e 74 65 78 74 20 3e |+ $postc|ontext >|
|00001db0| 20 30 29 3b 0a 58 20 20 | 20 20 20 20 24 6c 69 6e | 0);.X | $lin|
|00001dc0| 65 6e 6f 20 3d 20 24 2e | 20 2d 20 24 23 61 72 79 |eno = $.| - $#ary|
|00001dd0| 3b 0a 58 20 20 20 20 20 | 20 66 6f 72 65 61 63 68 |;.X | foreach|
|00001de0| 20 24 6c 69 6e 65 20 28 | 40 61 72 79 29 20 7b 0a | $line (|@ary) {.|
|00001df0| 58 20 20 20 20 20 20 20 | 20 26 73 68 6f 77 6c 69 |X | &showli|
|00001e00| 6e 65 20 28 24 6c 69 6e | 65 2c 20 24 6c 69 6e 65 |ne ($lin|e, $line|
|00001e10| 6e 6f 2b 2b 29 3b 0a 58 | 20 20 20 20 20 20 7d 0a |no++);.X| }.|
|00001e20| 58 20 20 20 20 7d 0a 58 | 20 20 20 20 24 6c 61 73 |X }.X| $las|
|00001e30| 74 6f 75 74 70 75 74 20 | 3d 20 30 3b 0a 58 20 20 |toutput |= 0;.X |
|00001e40| 7d 0a 58 20 20 65 6c 73 | 69 66 20 28 28 24 63 75 |}.X els|if (($cu|
|00001e50| 72 20 21 7e 20 2f 5c 53 | 2e 2a 5c 6e 2f 6f 20 26 |r !~ /\S|.*\n/o &|
|00001e60| 26 20 24 70 61 72 61 67 | 72 61 70 68 6d 6f 64 65 |& $parag|raphmode|
|00001e70| 20 3d 3d 20 31 29 20 7c | 7c 20 65 6f 66 29 20 7b | == 1) ||| eof) {|
|00001e80| 0a 23 70 61 72 61 67 72 | 61 70 68 2f 66 69 6c 65 |.#paragr|aph/file|
|00001e90| 20 65 6e 64 0a 58 20 20 | 20 20 66 6f 72 20 28 3b | end.X | for (;|
|00001ea0| 20 24 63 75 72 72 65 6e | 74 70 72 65 20 3e 3d 20 | $curren|tpre >= |
|00001eb0| 30 3b 20 24 63 75 72 72 | 65 6e 74 70 72 65 2d 2d |0; $curr|entpre--|
|00001ec0| 29 20 7b 0a 58 20 20 20 | 20 20 20 73 68 69 66 74 |) {.X | shift|
|00001ed0| 20 28 40 61 72 79 29 3b | 0a 58 20 20 20 20 7d 0a | (@ary);|.X }.|
|00001ee0| 58 20 20 20 20 24 6c 61 | 73 74 6f 75 74 70 75 74 |X $la|stoutput|
|00001ef0| 20 3d 20 24 69 6e 66 69 | 6e 69 74 79 3b 0a 58 20 | = $infi|nity;.X |
|00001f00| 20 20 20 63 6c 6f 73 65 | 20 28 41 52 47 56 29 20 | close| (ARGV) |
|00001f10| 69 66 20 28 65 6f 66 29 | 3b 0a 58 20 20 7d 0a 58 |if (eof)|;.X }.X|
|00001f20| 20 20 65 6c 73 69 66 20 | 28 24 6c 61 73 74 6f 75 | elsif |($lastou|
|00001f30| 74 70 75 74 20 3c 3d 20 | 24 70 6f 73 74 63 6f 6e |tput <= |$postcon|
|00001f40| 74 65 78 74 29 20 7b 20 | 20 20 20 20 23 61 6e 6f |text) { | #ano|
|00001f50| 74 68 65 72 20 6c 69 6e | 65 20 6f 66 20 70 6f 73 |ther lin|e of pos|
|00001f60| 74 63 6f 6e 74 65 78 74 | 0a 58 20 20 20 20 26 73 |tcontext|.X &s|
|00001f70| 68 6f 77 6c 69 6e 65 20 | 28 24 63 75 72 2c 20 24 |howline |($cur, $|
|00001f80| 2e 29 3b 0a 58 20 20 7d | 0a 58 20 20 23 67 6f 74 |.);.X }|.X #got|
|00001f90| 6f 20 6e 65 78 74 20 6c | 69 6e 65 20 6f 66 20 69 |o next l|ine of i|
|00001fa0| 6e 70 75 74 3a 0a 58 20 | 20 24 6c 61 73 74 6f 75 |nput:.X | $lastou|
|00001fb0| 74 70 75 74 2b 2b 3b 0a | 58 20 20 24 5f 20 3d 20 |tput++;.|X $_ = |
|00001fc0| 3c 3e 20 69 66 20 24 5f | 3b 0a 58 20 20 70 75 73 |<> if $_|;.X pus|
|00001fd0| 68 28 40 61 72 79 2c 24 | 5f 29 3b 20 0a 58 20 20 |h(@ary,$|_); .X |
|00001fe0| 69 66 20 28 24 63 75 72 | 72 65 6e 74 70 72 65 20 |if ($cur|rentpre |
|00001ff0| 3c 20 24 70 72 65 63 6f | 6e 74 65 78 74 29 20 7b |< $preco|ntext) {|
|00002000| 0a 58 20 20 20 20 24 63 | 75 72 72 65 6e 74 70 72 |.X $c|urrentpr|
|00002010| 65 2b 2b 3b 0a 58 20 20 | 7d 0a 58 20 20 65 6c 73 |e++;.X |}.X els|
|00002020| 65 20 7b 0a 58 20 20 20 | 20 73 68 69 66 74 28 40 |e {.X | shift(@|
|00002030| 61 72 79 29 3b 0a 58 20 | 20 7d 0a 58 20 20 24 63 |ary);.X | }.X $c|
|00002040| 75 72 20 3d 20 24 61 72 | 79 5b 24 63 75 72 72 65 |ur = $ar|y[$curre|
|00002050| 6e 74 70 72 65 5d 3b 0a | 58 7d 0a 58 0a 58 0a 58 |ntpre];.|X}.X.X.X|
|00002060| 23 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 20 70 65 72 68 |#-------|--- perh|
|00002070| 61 70 73 20 64 69 73 70 | 6c 61 79 20 6e 75 6d 62 |aps disp|lay numb|
|00002080| 65 72 20 6f 66 20 6d 61 | 74 63 68 65 73 3a 0a 58 |er of ma|tches:.X|
|00002090| 69 66 20 28 24 63 6f 75 | 6e 74 5f 6d 61 74 63 68 |if ($cou|nt_match|
|000020a0| 65 73 20 21 3d 20 30 29 | 20 7b 0a 58 20 20 70 72 |es != 0)| {.X pr|
|000020b0| 69 6e 74 66 20 28 22 25 | 64 5c 6e 22 2c 20 24 6d |intf ("%|d\n", $m|
|000020c0| 61 74 63 68 65 73 29 3b | 0a 58 7d 0a 58 0a 58 0a |atches);|.X}.X.X.|
|000020d0| 45 4e 44 5f 4f 46 5f 46 | 49 4c 45 0a 69 66 20 74 |END_OF_F|ILE.if t|
|000020e0| 65 73 74 20 35 39 30 34 | 20 2d 6e 65 20 60 77 63 |est 5904| -ne `wc|
|000020f0| 20 2d 63 20 3c 27 63 67 | 72 65 70 27 60 3b 20 74 | -c <'cg|rep'`; t|
|00002100| 68 65 6e 0a 20 20 20 20 | 65 63 68 6f 20 73 68 61 |hen. |echo sha|
|00002110| 72 3a 20 5c 22 27 63 67 | 72 65 70 27 5c 22 20 75 |r: \"'cg|rep'\" u|
|00002120| 6e 70 61 63 6b 65 64 20 | 77 69 74 68 20 77 72 6f |npacked |with wro|
|00002130| 6e 67 20 73 69 7a 65 21 | 0a 66 69 0a 63 68 6d 6f |ng size!|.fi.chmo|
|00002140| 64 20 2b 78 20 27 63 67 | 72 65 70 27 0a 23 20 65 |d +x 'cg|rep'.# e|
|00002150| 6e 64 20 6f 66 20 27 63 | 67 72 65 70 27 0a 66 69 |nd of 'c|grep'.fi|
|00002160| 0a 65 63 68 6f 20 73 68 | 61 72 3a 20 45 6e 64 20 |.echo sh|ar: End |
|00002170| 6f 66 20 73 68 65 6c 6c | 20 61 72 63 68 69 76 65 |of shell| archive|
|00002180| 2e 0a 65 78 69 74 20 30 | 0a 0a 65 78 69 74 20 30 |..exit 0|..exit 0|
|00002190| 20 23 20 4a 75 73 74 20 | 69 6e 20 63 61 73 65 2e | # Just |in case.|
|000021a0| 2e 2e 0a 2d 2d 20 0a 4b | 65 6e 74 20 4c 61 6e 64 |...-- .K|ent Land|
|000021b0| 66 69 65 6c 64 20 20 20 | 20 20 20 20 20 20 20 20 |field | |
|000021c0| 20 20 20 20 20 20 20 20 | 49 4e 54 45 52 4e 45 54 | |INTERNET|
|000021d0| 3a 20 6b 65 6e 74 40 73 | 70 61 72 6b 79 2e 49 4d |: kent@s|parky.IM|
|000021e0| 44 2e 53 74 65 72 6c 69 | 6e 67 2e 43 4f 4d 0a 53 |D.Sterli|ng.COM.S|
|000021f0| 74 65 72 6c 69 6e 67 20 | 53 6f 66 74 77 61 72 65 |terling |Software|
|00002200| 2c 20 49 4d 44 20 20 20 | 20 20 20 20 20 20 20 20 |, IMD | |
|00002210| 55 55 43 50 3a 20 20 20 | 20 20 75 75 6e 65 74 21 |UUCP: | uunet!|
|00002220| 73 70 61 72 6b 79 21 6b | 65 6e 74 0a 50 68 6f 6e |sparky!k|ent.Phon|
|00002230| 65 3a 20 20 20 20 28 34 | 30 32 29 20 32 39 31 2d |e: (4|02) 291-|
|00002240| 38 33 30 30 20 20 20 20 | 20 20 20 20 20 46 41 58 |8300 | FAX|
|00002250| 3a 20 20 20 20 20 20 28 | 34 30 32 29 20 32 39 31 |: (|402) 291|
|00002260| 2d 34 33 36 32 0a 50 6c | 65 61 73 65 20 73 65 6e |-4362.Pl|ease sen|
|00002270| 64 20 63 6f 6d 70 2e 73 | 6f 75 72 63 65 73 2e 6d |d comp.s|ources.m|
|00002280| 69 73 63 2d 72 65 6c 61 | 74 65 64 20 6d 61 69 6c |isc-rela|ted mail|
|00002290| 20 74 6f 20 6b 65 6e 74 | 40 75 75 6e 65 74 2e 75 | to kent|@uunet.u|
|000022a0| 75 2e 6e 65 74 2e 0a | |u.net.. | |
+--------+-------------------------+-------------------------+--------+--------+