home *** CD-ROM | disk | FTP | other *** search
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).
Confidence | Program | Detection | Match Type | Support
|
---|
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 38 38 3a |bject: |v20i088:|
|00000070| 20 20 63 67 72 65 70 20 | 2d 20 63 6f 6e 74 65 78 | cgrep |- contex|
|00000080| 74 20 67 72 65 70 20 69 | 6e 20 70 65 72 6c 2c 20 |t grep i|n perl, |
|00000090| 50 61 72 74 30 31 2f 30 | 31 0a 4d 65 73 73 61 67 |Part01/0|1.Messag|
|000000a0| 65 2d 49 44 3a 20 3c 31 | 39 39 31 4a 75 6c 33 2e |e-ID: <1|991Jul3.|
|000000b0| 30 31 30 34 33 31 2e 32 | 35 34 36 33 40 73 70 61 |010431.2|5463@spa|
|000000c0| 72 6b 79 2e 49 4d 44 2e | 53 74 65 72 6c 69 6e 67 |rky.IMD.|Sterling|
|000000d0| 2e 43 4f 4d 3e 0a 58 2d | 4d 64 34 2d 53 69 67 6e |.COM>.X-|Md4-Sign|
|000000e0| 61 74 75 72 65 3a 20 30 | 38 33 34 37 62 36 39 33 |ature: 0|8347b693|
|000000f0| 62 31 64 30 39 38 65 61 | 61 63 36 65 62 34 64 66 |b1d098ea|ac6eb4df|
|00000100| 31 61 37 35 65 65 30 0a | 44 61 74 65 3a 20 57 65 |1a75ee0.|Date: We|
|00000110| 64 2c 20 33 20 4a 75 6c | 20 31 39 39 31 20 30 31 |d, 3 Jul| 1991 01|
|00000120| 3a 30 34 3a 33 31 20 47 | 4d 54 0a 41 70 70 72 6f |:04:31 G|MT.Appro|
|00000130| 76 65 64 3a 20 6b 65 6e | 74 40 73 70 61 72 6b 79 |ved: ken|t@sparky|
|00000140| 2e 69 6d 64 2e 73 74 65 | 72 6c 69 6e 67 2e 63 6f |.imd.ste|rling.co|
|00000150| 6d 0a 0a 53 75 62 6d 69 | 74 74 65 64 2d 62 79 3a |m..Submi|tted-by:|
|00000160| 20 4c 75 74 7a 20 50 72 | 65 63 68 65 6c 74 20 3c | Lutz Pr|echelt <|
|00000170| 70 72 65 63 68 65 6c 74 | 40 69 34 31 73 31 34 2e |prechelt|@i41s14.|
|00000180| 69 72 61 2e 75 6b 61 2e | 64 65 3e 0a 50 6f 73 74 |ira.uka.|de>.Post|
|00000190| 69 6e 67 2d 6e 75 6d 62 | 65 72 3a 20 56 6f 6c 75 |ing-numb|er: Volu|
|000001a0| 6d 65 20 32 30 2c 20 49 | 73 73 75 65 20 38 38 0a |me 20, I|ssue 88.|
|000001b0| 41 72 63 68 69 76 65 2d | 6e 61 6d 65 3a 20 63 67 |Archive-|name: cg|
|000001c0| 72 65 70 2f 70 61 72 74 | 30 31 0a 0a 54 68 65 20 |rep/part|01..The |
|000001d0| 66 6f 6c 6c 6f 77 69 6e | 67 20 69 73 20 61 20 76 |followin|g is a v|
|000001e0| 65 72 73 69 6f 6e 20 6f | 66 20 67 72 65 70 20 28 |ersion o|f grep (|
|000001f0| 61 73 20 61 20 50 65 72 | 6c 20 73 63 72 69 70 74 |as a Per|l script|
|00000200| 29 0a 74 68 61 74 20 67 | 69 76 65 73 20 79 6f 75 |).that g|ives you|
|00000210| 20 61 20 6e 75 6d 62 65 | 72 20 6f 66 20 63 6f 6e | a numbe|r of con|
|00000220| 74 65 78 74 20 6c 69 6e | 65 73 20 61 6c 6f 6e 67 |text lin|es along|
|00000230| 20 77 69 74 68 20 74 68 | 65 20 0a 6d 61 74 63 68 | with th|e .match|
|00000240| 69 6e 67 20 6c 69 6e 65 | 2e 20 49 74 20 77 61 73 |ing line|. It was|
|00000250| 20 69 6e 73 70 69 72 65 | 64 20 62 79 20 4c 61 72 | inspire|d by Lar|
|00000260| 72 79 20 57 61 6c 6c 73 | 20 65 78 61 6d 70 6c 65 |ry Walls| example|
|00000270| 20 66 72 6f 6d 0a 74 68 | 65 20 70 65 72 6c 20 62 | from.th|e perl b|
|00000280| 6f 6f 6b 2e 20 54 68 65 | 20 63 6f 6e 74 65 78 74 |ook. The| context|
|00000290| 20 73 69 7a 65 20 69 73 | 20 73 65 6c 65 63 74 61 | size is| selecta|
|000002a0| 62 6c 65 2e 0a 0a 54 68 | 65 20 70 72 6f 67 72 61 |ble...Th|e progra|
|000002b0| 6d 20 68 61 73 20 73 65 | 76 65 72 61 6c 20 6f 70 |m has se|veral op|
|000002c0| 74 69 6f 6e 73 3b 20 69 | 6e 20 70 61 72 74 69 63 |tions; i|n partic|
|000002d0| 75 6c 61 72 20 74 68 65 | 72 65 20 69 73 20 61 6e |ular the|re is an|
|000002e0| 20 0a 65 73 70 65 63 69 | 61 6c 6c 79 20 75 73 65 | .especi|ally use|
|000002f0| 66 75 6c 20 27 70 61 72 | 61 67 72 61 70 68 20 6d |ful 'par|agraph m|
|00000300| 6f 64 65 27 20 77 68 65 | 72 65 0a 74 68 65 20 63 |ode' whe|re.the c|
|00000310| 6f 6e 74 65 78 74 20 69 | 73 20 62 72 6f 6b 65 6e |ontext i|s broken|
|00000320| 20 6f 66 66 20 61 74 20 | 61 6e 20 65 6d 70 74 79 | off at |an empty|
|00000330| 20 6c 69 6e 65 2e 0a 0a | 46 6f 72 20 65 78 61 63 | line...|For exac|
|00000340| 74 20 75 73 61 67 65 2c | 20 73 65 65 20 74 68 65 |t usage,| see the|
|00000350| 20 6d 65 73 73 61 67 65 | 20 69 6e 20 74 68 65 20 | message| in the |
|00000360| 62 6f 64 79 20 6f 66 20 | 74 68 65 20 73 63 72 69 |body of |the scri|
|00000370| 70 74 2e 0a 59 6f 75 20 | 77 69 6c 6c 20 70 72 6f |pt..You |will pro|
|00000380| 62 61 62 6c 79 20 68 61 | 76 65 20 74 6f 20 65 64 |bably ha|ve to ed|
|00000390| 69 74 20 74 68 65 20 66 | 69 72 73 74 20 6c 69 6e |it the f|irst lin|
|000003a0| 65 20 6f 66 20 74 68 65 | 20 73 63 72 69 70 74 2c |e of the| script,|
|000003b0| 0a 74 6f 20 74 65 6c 6c | 20 69 74 20 77 68 65 72 |.to tell| it wher|
|000003c0| 65 20 79 6f 75 72 20 27 | 70 65 72 6c 27 20 72 65 |e your '|perl' re|
|000003d0| 73 69 64 65 73 2e 0a 0a | 20 20 20 4c 75 74 7a 0a |sides...| Lutz.|
|000003e0| 0a 4c 75 74 7a 20 50 72 | 65 63 68 65 6c 74 20 20 |.Lutz Pr|echelt |
|000003f0| 20 28 2b 2b 34 39 2f 37 | 32 31 2f 36 30 38 2d 34 | (++49/7|21/608-4|
|00000400| 33 31 37 2c 20 20 46 41 | 58 3a 20 2b 2b 34 39 2f |317, FA|X: ++49/|
|00000410| 37 32 31 2f 36 39 37 37 | 36 30 29 0a 49 6e 73 74 |721/6977|60).Inst|
|00000420| 69 74 75 74 20 66 75 65 | 72 20 50 72 6f 67 72 61 |itut fue|r Progra|
|00000430| 6d 6d 73 74 72 75 6b 74 | 75 72 65 6e 20 75 6e 64 |mmstrukt|uren und|
|00000440| 20 44 61 74 65 6e 6f 72 | 67 61 6e 69 73 61 74 69 | Datenor|ganisati|
|00000450| 6f 6e 0a 55 6e 69 76 65 | 72 73 69 74 61 65 74 20 |on.Unive|rsitaet |
|00000460| 4b 61 72 6c 73 72 75 68 | 65 3b 20 20 44 2d 37 35 |Karlsruh|e; D-75|
|00000470| 30 30 20 4b 61 72 6c 73 | 72 75 68 65 20 31 3b 20 |00 Karls|ruhe 1; |
|00000480| 20 47 65 72 6d 61 6e 79 | 0a 70 72 65 63 68 65 6c | Germany|.prechel|
|00000490| 74 40 69 72 61 2e 75 6b | 61 2e 64 65 20 20 6f 72 |t@ira.uk|a.de or|
|000004a0| 20 20 70 72 65 63 68 65 | 6c 74 21 69 72 61 2e 75 | preche|lt!ira.u|
|000004b0| 6b 61 2e 64 65 40 72 65 | 6c 61 79 2e 63 73 6e 65 |ka.de@re|lay.csne|
|000004c0| 74 0a 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |t.------|--------|
|000004d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000500| 0a 23 21 20 2f 62 69 6e | 2f 73 68 0a 23 20 54 68 |.#! /bin|/sh.# Th|
|00000510| 69 73 20 69 73 20 61 20 | 73 68 65 6c 6c 20 61 72 |is is a |shell ar|
|00000520| 63 68 69 76 65 2e 20 20 | 52 65 6d 6f 76 65 20 61 |chive. |Remove a|
|00000530| 6e 79 74 68 69 6e 67 20 | 62 65 66 6f 72 65 20 74 |nything |before t|
|00000540| 68 69 73 20 6c 69 6e 65 | 2c 20 74 68 65 6e 20 66 |his line|, then f|
|00000550| 65 65 64 20 69 74 0a 23 | 20 69 6e 74 6f 20 61 20 |eed it.#| into a |
|00000560| 73 68 65 6c 6c 20 76 69 | 61 20 22 73 68 20 66 69 |shell vi|a "sh fi|
|00000570| 6c 65 22 20 6f 72 20 73 | 69 6d 69 6c 61 72 2e 20 |le" or s|imilar. |
|00000580| 20 54 6f 20 6f 76 65 72 | 77 72 69 74 65 20 65 78 | To over|write ex|
|00000590| 69 73 74 69 6e 67 20 66 | 69 6c 65 73 2c 0a 23 20 |isting f|iles,.# |
|000005a0| 74 79 70 65 20 22 73 68 | 20 66 69 6c 65 20 2d 63 |type "sh| file -c|
|000005b0| 22 2e 0a 23 20 54 68 65 | 20 74 6f 6f 6c 20 74 68 |"..# The| tool th|
|000005c0| 61 74 20 67 65 6e 65 72 | 61 74 65 64 20 74 68 69 |at gener|ated thi|
|000005d0| 73 20 61 70 70 65 61 72 | 65 64 20 69 6e 20 74 68 |s appear|ed in th|
|000005e0| 65 20 63 6f 6d 70 2e 73 | 6f 75 72 63 65 73 2e 75 |e comp.s|ources.u|
|000005f0| 6e 69 78 20 6e 65 77 73 | 67 72 6f 75 70 3b 0a 23 |nix news|group;.#|
|00000600| 20 73 65 6e 64 20 6d 61 | 69 6c 20 74 6f 20 63 6f | send ma|il to co|
|00000610| 6d 70 2d 73 6f 75 72 63 | 65 73 2d 75 6e 69 78 40 |mp-sourc|es-unix@|
|00000620| 75 75 6e 65 74 2e 75 75 | 2e 6e 65 74 20 69 66 20 |uunet.uu|.net if |
|00000630| 79 6f 75 20 77 61 6e 74 | 20 74 68 61 74 20 74 6f |you want| that to|
|00000640| 6f 6c 2e 0a 23 20 43 6f | 6e 74 65 6e 74 73 3a 20 |ol..# Co|ntents: |
|00000650| 20 63 67 72 65 70 0a 23 | 20 57 72 61 70 70 65 64 | cgrep.#| Wrapped|
|00000660| 20 62 79 20 6b 65 6e 74 | 40 73 70 61 72 6b 79 20 | by kent|@sparky |
|00000670| 6f 6e 20 54 75 65 20 4a | 75 6c 20 20 32 20 31 39 |on Tue J|ul 2 19|
|00000680| 3a 35 36 3a 35 31 20 31 | 39 39 31 0a 50 41 54 48 |:56:51 1|991.PATH|
|00000690| 3d 2f 62 69 6e 3a 2f 75 | 73 72 2f 62 69 6e 3a 2f |=/bin:/u|sr/bin:/|
|000006a0| 75 73 72 2f 75 63 62 20 | 3b 20 65 78 70 6f 72 74 |usr/ucb |; export|
|000006b0| 20 50 41 54 48 0a 65 63 | 68 6f 20 49 66 20 74 68 | PATH.ec|ho If th|
|000006c0| 69 73 20 61 72 63 68 69 | 76 65 20 69 73 20 63 6f |is archi|ve is co|
|000006d0| 6d 70 6c 65 74 65 2c 20 | 79 6f 75 20 77 69 6c 6c |mplete, |you will|
|000006e0| 20 73 65 65 20 74 68 65 | 20 66 6f 6c 6c 6f 77 69 | see the| followi|
|000006f0| 6e 67 20 6d 65 73 73 61 | 67 65 3a 0a 65 63 68 6f |ng messa|ge:.echo|
|00000700| 20 27 20 20 20 20 20 20 | 20 20 20 20 22 73 68 61 | ' | "sha|
|00000710| 72 3a 20 45 6e 64 20 6f | 66 20 61 72 63 68 69 76 |r: End o|f archiv|
|00000720| 65 2e 22 27 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |e."'.if |test -f |
|00000730| 27 63 67 72 65 70 27 20 | 2d 61 20 22 24 7b 31 7d |'cgrep' |-a "${1}|
|00000740| 22 20 21 3d 20 22 2d 63 | 22 20 3b 20 74 68 65 6e |" != "-c|" ; then|
|00000750| 20 0a 20 20 65 63 68 6f | 20 73 68 61 72 3a 20 57 | . echo| shar: W|
|00000760| 69 6c 6c 20 6e 6f 74 20 | 63 6c 6f 62 62 65 72 20 |ill not |clobber |
|00000770| 65 78 69 73 74 69 6e 67 | 20 66 69 6c 65 20 5c 22 |existing| file \"|
|00000780| 27 63 67 72 65 70 27 5c | 22 0a 65 6c 73 65 0a 20 |'cgrep'\|".else. |
|00000790| 20 65 63 68 6f 20 73 68 | 61 72 3a 20 45 78 74 72 | echo sh|ar: Extr|
|000007a0| 61 63 74 69 6e 67 20 5c | 22 27 63 67 72 65 70 27 |acting \|"'cgrep'|
|000007b0| 5c 22 20 5c 28 34 37 37 | 31 20 63 68 61 72 61 63 |\" \(477|1 charac|
|000007c0| 74 65 72 73 5c 29 0a 20 | 20 73 65 64 20 22 73 2f |ters\). | sed "s/|
|000007d0| 5e 58 2f 2f 22 20 3e 27 | 63 67 72 65 70 27 20 3c |^X//" >'|cgrep' <|
|000007e0| 3c 27 45 4e 44 5f 4f 46 | 5f 46 49 4c 45 27 0a 58 |<'END_OF|_FILE'.X|
|000007f0| 23 21 2f 62 69 6e 2f 70 | 65 72 6c 0a 58 23 0a 58 |#!/bin/p|erl.X#.X|
|00000800| 23 20 20 20 20 43 6f 70 | 79 72 69 67 68 74 20 28 |# Cop|yright (|
|00000810| 43 29 20 31 39 39 31 20 | 62 79 20 4c 75 74 7a 20 |C) 1991 |by Lutz |
|00000820| 50 72 65 63 68 65 6c 74 | 2c 20 4b 61 72 6c 73 72 |Prechelt|, Karlsr|
|00000830| 75 68 65 0a 58 23 0a 58 | 23 20 20 20 20 54 68 69 |uhe.X#.X|# Thi|
|00000840| 73 20 70 72 6f 67 72 61 | 6d 20 69 73 20 66 72 65 |s progra|m is fre|
|00000850| 65 20 73 6f 66 74 77 61 | 72 65 3b 20 79 6f 75 20 |e softwa|re; you |
|00000860| 63 61 6e 20 72 65 64 69 | 73 74 72 69 62 75 74 65 |can redi|stribute|
|00000870| 20 69 74 20 61 6e 64 2f | 6f 72 20 6d 6f 64 69 66 | it and/|or modif|
|00000880| 79 0a 58 23 20 20 20 20 | 69 74 20 75 6e 64 65 72 |y.X# |it under|
|00000890| 20 74 68 65 20 74 65 72 | 6d 73 20 6f 66 20 74 68 | the ter|ms of th|
|000008a0| 65 20 47 4e 55 20 47 65 | 6e 65 72 61 6c 20 50 75 |e GNU Ge|neral Pu|
|000008b0| 62 6c 69 63 20 4c 69 63 | 65 6e 73 65 20 61 73 20 |blic Lic|ense as |
|000008c0| 70 75 62 6c 69 73 68 65 | 64 20 62 79 0a 58 23 20 |publishe|d by.X# |
|000008d0| 20 20 20 74 68 65 20 46 | 72 65 65 20 53 6f 66 74 | the F|ree Soft|
|000008e0| 77 61 72 65 20 46 6f 75 | 6e 64 61 74 69 6f 6e 3b |ware Fou|ndation;|
|000008f0| 20 65 69 74 68 65 72 20 | 76 65 72 73 69 6f 6e 20 | either |version |
|00000900| 31 2c 20 6f 72 20 28 61 | 74 20 79 6f 75 72 20 6f |1, or (a|t your o|
|00000910| 70 74 69 6f 6e 29 0a 58 | 23 20 20 20 20 61 6e 79 |ption).X|# any|
|00000920| 20 6c 61 74 65 72 20 76 | 65 72 73 69 6f 6e 2e 0a | later v|ersion..|
|00000930| 58 23 20 20 20 20 54 68 | 69 73 20 70 72 6f 67 72 |X# Th|is progr|
|00000940| 61 6d 20 69 73 20 64 69 | 73 74 72 69 62 75 74 65 |am is di|stribute|
|00000950| 64 20 69 6e 20 74 68 65 | 20 68 6f 70 65 20 74 68 |d in the| hope th|
|00000960| 61 74 20 69 74 20 77 69 | 6c 6c 20 62 65 20 75 73 |at it wi|ll be us|
|00000970| 65 66 75 6c 2c 0a 58 23 | 20 20 20 20 62 75 74 20 |eful,.X#| but |
|00000980| 57 49 54 48 4f 55 54 20 | 41 4e 59 20 57 41 52 52 |WITHOUT |ANY WARR|
|00000990| 41 4e 54 59 3b 20 77 69 | 74 68 6f 75 74 20 65 76 |ANTY; wi|thout ev|
|000009a0| 65 6e 20 74 68 65 20 69 | 6d 70 6c 69 65 64 20 77 |en the i|mplied w|
|000009b0| 61 72 72 61 6e 74 79 20 | 6f 66 0a 58 23 20 20 20 |arranty |of.X# |
|000009c0| 20 4d 45 52 43 48 41 4e | 54 41 42 49 4c 49 54 59 | MERCHAN|TABILITY|
|000009d0| 20 6f 72 20 46 49 54 4e | 45 53 53 20 46 4f 52 20 | or FITN|ESS FOR |
|000009e0| 41 20 50 41 52 54 49 43 | 55 4c 41 52 20 50 55 52 |A PARTIC|ULAR PUR|
|000009f0| 50 4f 53 45 2e 20 20 53 | 65 65 20 74 68 65 0a 58 |POSE. S|ee the.X|
|00000a00| 23 20 20 20 20 47 4e 55 | 20 47 65 6e 65 72 61 6c |# GNU| General|
|00000a10| 20 50 75 62 6c 69 63 20 | 4c 69 63 65 6e 73 65 20 | Public |License |
|00000a20| 66 6f 72 20 6d 6f 72 65 | 20 64 65 74 61 69 6c 73 |for more| details|
|00000a30| 2e 0a 58 23 20 20 20 20 | 49 66 20 79 6f 75 20 64 |..X# |If you d|
|00000a40| 6f 6e 27 74 20 68 61 76 | 65 20 61 20 63 6f 70 79 |on't hav|e a copy|
|00000a50| 20 6f 66 20 74 68 65 20 | 47 4e 55 20 47 65 6e 65 | of the |GNU Gene|
|00000a60| 72 61 6c 20 50 75 62 6c | 69 63 20 4c 69 63 65 6e |ral Publ|ic Licen|
|00000a70| 73 65 20 77 72 69 74 65 | 20 74 6f 0a 58 23 20 20 |se write| to.X# |
|00000a80| 20 20 46 72 65 65 20 53 | 6f 66 74 77 61 72 65 20 | Free S|oftware |
|00000a90| 46 6f 75 6e 64 61 74 69 | 6f 6e 2c 20 49 6e 63 2e |Foundati|on, Inc.|
|00000aa0| 2c 20 36 37 35 20 4d 61 | 73 73 20 41 76 65 2c 20 |, 675 Ma|ss Ave, |
|00000ab0| 43 61 6d 62 72 69 64 67 | 65 2c 20 4d 41 20 30 32 |Cambridg|e, MA 02|
|00000ac0| 31 33 39 2c 20 55 53 41 | 2e 0a 58 0a 58 23 20 41 |139, USA|..X.X# A|
|00000ad0| 75 74 68 6f 72 3a 20 4c | 75 74 7a 20 50 72 65 63 |uthor: L|utz Prec|
|00000ae0| 68 65 6c 74 20 28 70 72 | 65 63 68 65 6c 74 40 69 |helt (pr|echelt@i|
|00000af0| 72 61 2e 75 6b 61 2e 64 | 65 29 2c 0a 58 23 20 20 |ra.uka.d|e),.X# |
|00000b00| 20 20 20 20 20 20 20 32 | 33 2e 30 33 2e 39 31 0a | 2|3.03.91.|
|00000b10| 58 23 20 43 68 61 6e 67 | 65 3a 20 4c 75 74 7a 20 |X# Chang|e: Lutz |
|00000b20| 50 72 65 63 68 65 6c 74 | 2c 20 30 32 2e 30 37 2e |Prechelt|, 02.07.|
|00000b30| 39 31 0a 58 23 0a 58 23 | 20 55 73 61 67 65 3a 20 |91.X#.X#| Usage: |
|00000b40| 73 65 65 20 6d 65 73 73 | 61 67 65 20 61 74 20 22 |see mess|age at "|
|00000b50| 64 69 65 22 20 62 65 6c | 6f 77 2e 0a 58 0a 58 24 |die" bel|ow..X.X$|
|00000b60| 69 6e 66 69 6e 69 74 79 | 20 3d 20 31 30 30 30 30 |infinity| = 10000|
|00000b70| 3b 0a 58 0a 58 24 70 72 | 65 63 6f 6e 74 65 78 74 |;.X.X$pr|econtext|
|00000b80| 20 20 3d 20 32 3b 0a 58 | 24 70 6f 73 74 63 6f 6e | = 2;.X|$postcon|
|00000b90| 74 65 78 74 20 3d 20 32 | 3b 0a 58 24 70 61 72 61 |text = 2|;.X$para|
|00000ba0| 67 72 61 70 68 6d 6f 64 | 65 20 20 20 20 3d 20 30 |graphmod|e = 0|
|00000bb0| 3b 0a 58 24 77 69 74 68 | 6c 69 6e 65 6e 75 6d 62 |;.X$with|linenumb|
|00000bc0| 65 72 20 20 20 3d 20 30 | 3b 0a 58 24 77 69 74 68 |er = 0|;.X$with|
|00000bd0| 66 69 6c 65 6e 61 6d 65 | 20 20 20 20 20 3d 20 30 |filename| = 0|
|00000be0| 3b 0a 58 24 77 72 6f 6e | 67 5f 6f 70 74 69 6f 6e |;.X$wron|g_option|
|00000bf0| 20 20 20 20 20 3d 20 30 | 3b 0a 58 24 72 65 76 65 | = 0|;.X$reve|
|00000c00| 72 73 65 6d 6f 64 65 20 | 20 20 20 20 20 3d 20 30 |rsemode | = 0|
|00000c10| 3b 0a 58 24 64 65 6c 69 | 6d 69 74 65 72 73 74 72 |;.X$deli|miterstr|
|00000c20| 69 6e 67 20 20 3d 20 22 | 2d 2d 2d 2d 2d 2d 2d 2d |ing = "|--------|
|00000c30| 2d 2d 2d 5c 6e 22 3b 0a | 58 23 20 24 65 6e 64 70 |---\n";.|X# $endp|
|00000c40| 61 72 61 20 3d 20 27 5c | 53 2e 2a 5c 6e 27 3b 0a |ara = '\|S.*\n';.|
|00000c50| 58 0a 58 73 75 62 20 73 | 68 6f 77 6c 69 6e 65 20 |X.Xsub s|howline |
|00000c60| 7b 0a 58 20 20 69 66 20 | 28 24 77 69 74 68 66 69 |{.X if |($withfi|
|00000c70| 6c 65 6e 61 6d 65 20 21 | 3d 20 30 29 20 7b 0a 58 |lename !|= 0) {.X|
|00000c80| 20 20 20 20 70 72 69 6e | 74 66 20 28 22 5c 22 25 | prin|tf ("\"%|
|00000c90| 73 5c 22 22 2c 20 24 41 | 52 47 56 29 3b 0a 58 20 |s\"", $A|RGV);.X |
|00000ca0| 20 7d 0a 58 20 20 69 66 | 20 28 24 77 69 74 68 66 | }.X if| ($withf|
|00000cb0| 69 6c 65 6e 61 6d 65 20 | 21 3d 20 30 20 26 26 20 |ilename |!= 0 && |
|00000cc0| 24 77 69 74 68 6c 69 6e | 65 6e 75 6d 62 65 72 20 |$withlin|enumber |
|00000cd0| 21 3d 20 30 29 20 7b 0a | 58 20 20 20 20 70 72 69 |!= 0) {.|X pri|
|00000ce0| 6e 74 20 22 2c 22 3b 0a | 58 20 20 7d 0a 58 20 20 |nt ",";.|X }.X |
|00000cf0| 69 66 20 28 24 77 69 74 | 68 6c 69 6e 65 6e 75 6d |if ($wit|hlinenum|
|00000d00| 62 65 72 20 21 3d 20 30 | 29 20 7b 0a 58 20 20 20 |ber != 0|) {.X |
|00000d10| 20 70 72 69 6e 74 66 20 | 28 22 25 34 64 22 2c 20 | printf |("%4d", |
|00000d20| 24 2e 29 3b 0a 58 20 20 | 7d 0a 58 20 20 69 66 20 |$.);.X |}.X if |
|00000d30| 28 24 77 69 74 68 66 69 | 6c 65 6e 61 6d 65 20 21 |($withfi|lename !|
|00000d40| 3d 20 30 20 7c 7c 20 24 | 77 69 74 68 6c 69 6e 65 |= 0 || $|withline|
|00000d50| 6e 75 6d 62 65 72 20 21 | 3d 20 30 29 20 7b 0a 58 |number !|= 0) {.X|
|00000d60| 20 20 20 20 70 72 69 6e | 74 20 22 3a 20 22 3b 0a | prin|t ": ";.|
|00000d70| 58 20 20 7d 0a 58 20 20 | 70 72 69 6e 74 20 28 24 |X }.X |print ($|
|00000d80| 5f 5b 30 5d 29 3b 0a 58 | 7d 0a 58 0a 58 0a 58 23 |_[0]);.X|}.X.X.X#|
|00000d90| 20 50 72 6f 63 65 73 73 | 20 74 68 65 20 4f 70 74 | Process| the Opt|
|00000da0| 69 6f 6e 73 3a 0a 58 64 | 6f 20 7b 0a 58 20 20 24 |ions:.Xd|o {.X $|
|00000db0| 73 6f 6d 65 74 68 69 6e | 67 5f 64 6f 6e 65 20 3d |somethin|g_done =|
|00000dc0| 20 31 3b 0a 58 20 20 69 | 66 20 28 24 41 52 47 56 | 1;.X i|f ($ARGV|
|00000dd0| 5b 30 5d 20 3d 7e 20 2f | 5e 2d 28 5c 64 2b 29 24 |[0] =~ /|^-(\d+)$|
|00000de0| 2f 29 20 7b 0a 58 20 20 | 20 20 24 70 72 65 63 6f |/) {.X | $preco|
|00000df0| 6e 74 65 78 74 20 3d 20 | 24 70 6f 73 74 63 6f 6e |ntext = |$postcon|
|00000e00| 74 65 78 74 20 3d 20 24 | 31 3b 0a 58 20 20 20 20 |text = $|1;.X |
|00000e10| 73 68 69 66 74 3b 0a 58 | 20 20 7d 0a 58 20 20 65 |shift;.X| }.X e|
|00000e20| 6c 73 69 66 20 28 24 41 | 52 47 56 5b 30 5d 20 3d |lsif ($A|RGV[0] =|
|00000e30| 7e 20 2f 5e 2d 28 5c 64 | 2b 29 5b 5c 2c 5c 2b 5c |~ /^-(\d|+)[\,\+\|
|00000e40| 2f 5c 3b 5d 28 5c 64 2b | 29 24 2f 29 20 7b 0a 58 |/\;](\d+|)$/) {.X|
|00000e50| 20 20 20 20 24 70 72 65 | 63 6f 6e 74 65 78 74 20 | $pre|context |
|00000e60| 20 3d 20 24 31 3b 0a 58 | 20 20 20 20 24 70 6f 73 | = $1;.X| $pos|
|00000e70| 74 63 6f 6e 74 65 78 74 | 20 3d 20 24 32 3b 0a 58 |tcontext| = $2;.X|
|00000e80| 20 20 20 20 73 68 69 66 | 74 3b 0a 58 20 20 7d 0a | shif|t;.X }.|
|00000e90| 58 20 20 65 6c 73 69 66 | 20 28 24 41 52 47 56 5b |X elsif| ($ARGV[|
|00000ea0| 30 5d 20 3d 7e 20 2f 5e | 2d 64 24 2f 20 26 26 20 |0] =~ /^|-d$/ && |
|00000eb0| 24 23 41 52 47 56 20 3e | 20 30 29 20 7b 0a 58 20 |$#ARGV >| 0) {.X |
|00000ec0| 20 20 20 24 64 65 6c 69 | 6d 69 74 65 72 73 74 72 | $deli|miterstr|
|00000ed0| 69 6e 67 20 3d 20 24 41 | 52 47 56 5b 31 5d 3b 0a |ing = $A|RGV[1];.|
|00000ee0| 58 20 20 20 20 24 64 65 | 6c 69 6d 69 74 65 72 73 |X $de|limiters|
|00000ef0| 74 72 69 6e 67 20 3d 7e | 20 73 2f 5c 5c 6e 2f 5c |tring =~| s/\\n/\|
|00000f00| 6e 2f 6f 3b 0a 58 20 20 | 20 20 73 68 69 66 74 3b |n/o;.X | shift;|
|00000f10| 20 73 68 69 66 74 3b 0a | 58 20 20 7d 0a 58 20 20 | shift;.|X }.X |
|00000f20| 65 6c 73 69 66 20 28 24 | 41 52 47 56 5b 30 5d 20 |elsif ($|ARGV[0] |
|00000f30| 3d 7e 20 2f 5e 2d 64 28 | 2e 2a 29 24 2f 29 20 7b |=~ /^-d(|.*)$/) {|
|00000f40| 0a 58 20 20 20 20 24 64 | 65 6c 69 6d 69 74 65 72 |.X $d|elimiter|
|00000f50| 73 74 72 69 6e 67 20 3d | 20 24 31 3b 0a 58 20 20 |string =| $1;.X |
|00000f60| 20 20 24 64 65 6c 69 6d | 69 74 65 72 73 74 72 69 | $delim|iterstri|
|00000f70| 6e 67 20 3d 7e 20 73 2f | 5c 5c 6e 2f 5c 6e 2f 6f |ng =~ s/|\\n/\n/o|
|00000f80| 3b 0a 58 20 20 20 20 73 | 68 69 66 74 3b 0a 58 20 |;.X s|hift;.X |
|00000f90| 20 7d 0a 58 20 20 65 6c | 73 69 66 20 28 24 41 52 | }.X el|sif ($AR|
|00000fa0| 47 56 5b 30 5d 20 3d 7e | 20 2f 5e 2d 70 24 2f 29 |GV[0] =~| /^-p$/)|
|00000fb0| 20 7b 0a 58 20 20 20 20 | 24 70 61 72 61 67 72 61 | {.X |$paragra|
|00000fc0| 70 68 6d 6f 64 65 20 3d | 20 31 3b 0a 58 20 20 20 |phmode =| 1;.X |
|00000fd0| 20 73 68 69 66 74 3b 0a | 58 20 20 7d 0a 58 20 20 | shift;.|X }.X |
|00000fe0| 65 6c 73 69 66 20 28 24 | 41 52 47 56 5b 30 5d 20 |elsif ($|ARGV[0] |
|00000ff0| 3d 7e 20 2f 5e 2d 6e 24 | 2f 29 20 7b 0a 58 20 20 |=~ /^-n$|/) {.X |
|00001000| 20 20 24 77 69 74 68 6c | 69 6e 65 6e 75 6d 62 65 | $withl|inenumbe|
|00001010| 72 20 3d 20 31 3b 0a 58 | 20 20 20 20 73 68 69 66 |r = 1;.X| shif|
|00001020| 74 3b 0a 58 20 20 7d 0a | 58 20 20 65 6c 73 69 66 |t;.X }.|X elsif|
|00001030| 20 28 24 41 52 47 56 5b | 30 5d 20 3d 7e 20 2f 5e | ($ARGV[|0] =~ /^|
|00001040| 2d 68 24 2f 29 20 7b 0a | 58 20 20 20 20 24 77 69 |-h$/) {.|X $wi|
|00001050| 74 68 66 69 6c 65 6e 61 | 6d 65 20 3d 20 31 3b 0a |thfilena|me = 1;.|
|00001060| 58 20 20 20 20 73 68 69 | 66 74 3b 0a 58 20 20 7d |X shi|ft;.X }|
|00001070| 0a 58 20 20 65 6c 73 69 | 66 20 28 24 41 52 47 56 |.X elsi|f ($ARGV|
|00001080| 5b 30 5d 20 3d 7e 20 2f | 5e 2d 76 24 2f 29 20 7b |[0] =~ /|^-v$/) {|
|00001090| 0a 58 20 20 20 20 24 72 | 65 76 65 72 73 65 6d 6f |.X $r|eversemo|
|000010a0| 64 65 20 3d 20 31 3b 0a | 58 20 20 20 20 73 68 69 |de = 1;.|X shi|
|000010b0| 66 74 3b 0a 58 20 20 7d | 0a 58 20 20 65 6c 73 69 |ft;.X }|.X elsi|
|000010c0| 66 20 28 24 41 52 47 56 | 5b 30 5d 20 3d 7e 20 2f |f ($ARGV|[0] =~ /|
|000010d0| 5e 2d 65 24 2f 29 20 7b | 20 23 20 65 6e 64 20 6f |^-e$/) {| # end o|
|000010e0| 70 74 69 6f 6e 73 20 28 | 66 6f 72 20 65 78 70 72 |ptions (|for expr|
|000010f0| 65 73 73 69 6f 6e 73 20 | 73 74 61 72 74 69 6e 67 |essions |starting|
|00001100| 20 77 69 74 68 20 2d 20 | 29 0a 58 20 20 20 20 24 | with - |).X $|
|00001110| 73 6f 6d 65 74 68 69 6e | 67 5f 64 6f 6e 65 20 3d |somethin|g_done =|
|00001120| 20 30 3b 0a 58 20 20 20 | 20 73 68 69 66 74 3b 0a | 0;.X | shift;.|
|00001130| 58 20 20 7d 0a 58 20 20 | 65 6c 73 69 66 20 28 24 |X }.X |elsif ($|
|00001140| 41 52 47 56 5b 30 5d 20 | 3d 7e 20 2f 5e 2d 2f 29 |ARGV[0] |=~ /^-/)|
|00001150| 20 7b 0a 58 20 20 20 20 | 70 72 69 6e 74 66 20 28 | {.X |printf (|
|00001160| 22 64 6f 6e 27 74 20 6b | 6e 6f 77 20 6f 70 74 69 |"don't k|now opti|
|00001170| 6f 6e 20 27 25 73 27 5c | 6e 22 2c 20 24 41 52 47 |on '%s'\|n", $ARG|
|00001180| 56 5b 30 5d 29 3b 0a 58 | 20 20 20 20 24 77 72 6f |V[0]);.X| $wro|
|00001190| 6e 67 5f 6f 70 74 69 6f | 6e 20 3d 20 31 3b 0a 58 |ng_optio|n = 1;.X|
|000011a0| 20 20 20 20 24 73 6f 6d | 65 74 68 69 6e 67 5f 64 | $som|ething_d|
|000011b0| 6f 6e 65 20 3d 20 30 3b | 0a 58 20 20 20 20 73 68 |one = 0;|.X sh|
|000011c0| 69 66 74 3b 0a 58 20 20 | 7d 0a 58 20 20 65 6c 73 |ift;.X |}.X els|
|000011d0| 65 20 7b 0a 58 20 20 20 | 20 24 73 6f 6d 65 74 68 |e {.X | $someth|
|000011e0| 69 6e 67 5f 64 6f 6e 65 | 20 3d 20 30 3b 0a 58 20 |ing_done| = 0;.X |
|000011f0| 20 7d 0a 58 7d 20 77 68 | 69 6c 65 20 28 24 73 6f | }.X} wh|ile ($so|
|00001200| 6d 65 74 68 69 6e 67 5f | 64 6f 6e 65 29 3b 0a 58 |mething_|done);.X|
|00001210| 0a 58 0a 58 23 20 55 73 | 61 67 65 20 6d 65 73 73 |.X.X# Us|age mess|
|00001220| 61 67 65 3a 0a 58 69 66 | 20 28 24 23 41 52 47 56 |age:.Xif| ($#ARGV|
|00001230| 20 3d 3d 20 2d 31 20 7c | 7c 20 24 77 72 6f 6e 67 | == -1 ||| $wrong|
|00001240| 5f 6f 70 74 69 6f 6e 29 | 20 7b 0a 58 20 20 64 69 |_option)| {.X di|
|00001250| 65 20 22 0a 58 20 20 20 | 55 73 61 67 65 3a 20 63 |e ".X |Usage: c|
|00001260| 67 72 65 70 20 5b 2d 70 | 72 65 5b 2c 70 6f 73 74 |grep [-p|re[,post|
|00001270| 5d 5d 20 5b 2d 70 5d 20 | 5b 2d 76 5d 20 5b 2d 68 |]] [-p] |[-v] [-h|
|00001280| 5d 20 5b 2d 6e 5d 20 5b | 2d 64 20 73 74 72 69 6e |] [-n] [|-d strin|
|00001290| 67 5d 20 70 61 74 74 65 | 72 6e 0a 58 5b 66 69 6c |g] patte|rn.X[fil|
|000012a0| 65 2e 2e 2e 5d 0a 58 0a | 58 20 20 20 63 67 72 65 |e...].X.|X cgre|
|000012b0| 70 20 69 73 20 61 20 63 | 6f 6e 74 65 78 74 20 67 |p is a c|ontext g|
|000012c0| 72 65 70 2e 20 49 74 20 | 64 69 73 70 6c 61 79 73 |rep. It |displays|
|000012d0| 20 6d 6f 72 65 20 74 68 | 61 6e 20 74 68 65 20 6f | more th|an the o|
|000012e0| 6e 65 20 6d 61 74 63 68 | 69 6e 67 20 6c 69 6e 65 |ne match|ing line|
|000012f0| 20 66 6f 72 0a 58 20 20 | 20 65 76 65 72 79 20 6d | for.X | every m|
|00001300| 61 74 63 68 20 28 32 20 | 62 65 66 6f 72 65 20 61 |atch (2 |before a|
|00001310| 6e 64 20 32 20 61 66 74 | 65 72 20 61 73 20 64 65 |nd 2 aft|er as de|
|00001320| 66 61 75 6c 74 29 2e 0a | 58 0a 58 20 20 20 2d 33 |fault)..|X.X -3|
|00001330| 20 20 6d 65 61 6e 73 20 | 64 69 73 70 6c 61 79 20 | means |display |
|00001340| 33 20 6c 69 6e 65 73 20 | 62 65 66 6f 72 65 20 61 |3 lines |before a|
|00001350| 6e 64 20 33 20 6c 69 6e | 65 73 20 61 66 74 65 72 |nd 3 lin|es after|
|00001360| 20 74 68 65 20 6d 61 74 | 63 68 0a 58 20 20 20 2d | the mat|ch.X -|
|00001370| 35 2c 31 32 20 20 6d 65 | 61 6e 73 20 64 69 73 70 |5,12 me|ans disp|
|00001380| 6c 61 79 20 35 20 6c 69 | 6e 65 73 20 62 65 66 6f |lay 5 li|nes befo|
|00001390| 72 65 20 74 68 65 20 6d | 61 74 63 68 20 61 6e 64 |re the m|atch and|
|000013a0| 20 31 32 20 6c 69 6e 65 | 73 20 61 66 74 65 72 0a | 12 line|s after.|
|000013b0| 58 20 20 20 2d 70 20 20 | 6d 65 61 6e 73 20 64 69 |X -p |means di|
|000013c0| 73 70 6c 61 79 20 6f 6e | 6c 79 20 61 73 20 6d 75 |splay on|ly as mu|
|000013d0| 63 68 20 6f 66 20 74 68 | 65 20 63 6f 6e 74 65 78 |ch of th|e contex|
|000013e0| 74 20 61 73 20 62 65 6c | 6f 6e 67 73 20 74 6f 20 |t as bel|ongs to |
|000013f0| 74 68 65 0a 58 20 20 20 | 20 20 20 20 63 75 72 72 |the.X | curr|
|00001400| 65 6e 74 20 70 61 72 61 | 67 72 61 70 68 2e 20 28 |ent para|graph. (|
|00001410| 70 61 72 61 67 72 61 70 | 68 73 20 62 6f 75 6e 64 |paragrap|hs bound|
|00001420| 65 64 20 62 79 20 65 6d | 70 74 79 20 6c 69 6e 65 |ed by em|pty line|
|00001430| 73 29 0a 58 20 20 20 2d | 76 20 20 6d 65 61 6e 73 |s).X -|v means|
|00001440| 20 69 6e 76 65 72 74 20 | 73 65 61 72 63 68 20 28 | invert |search (|
|00001450| 64 69 73 70 6c 61 79 20 | 6e 6f 6d 61 74 63 68 65 |display |nomatche|
|00001460| 73 29 0a 58 20 20 20 2d | 68 20 20 6d 65 61 6e 73 |s).X -|h means|
|00001470| 20 74 6f 67 67 6c 65 20 | 64 69 73 70 6c 61 79 20 | toggle |display |
|00001480| 66 69 6c 65 6e 61 6d 65 | 20 62 65 66 6f 72 65 20 |filename| before |
|00001490| 65 76 65 72 79 20 6c 69 | 6e 65 0a 58 20 20 20 2d |every li|ne.X -|
|000014a0| 6e 20 20 6d 65 61 6e 73 | 20 64 69 73 70 6c 61 79 |n means| display|
|000014b0| 20 6c 69 6e 65 20 6e 75 | 6d 62 65 72 20 62 65 66 | line nu|mber bef|
|000014c0| 6f 72 65 20 65 76 65 72 | 79 20 6c 69 6e 65 0a 58 |ore ever|y line.X|
|000014d0| 20 20 20 2d 64 20 73 74 | 72 69 6e 67 20 20 6d 65 | -d st|ring me|
|000014e0| 61 6e 73 20 75 73 65 20 | 73 74 72 69 6e 67 20 61 |ans use |string a|
|000014f0| 73 20 74 68 65 20 6f 75 | 74 70 75 74 20 64 65 6c |s the ou|tput del|
|00001500| 69 6d 69 74 65 72 20 73 | 74 72 69 6e 67 0a 58 20 |imiter s|tring.X |
|00001510| 20 20 70 61 74 74 65 72 | 6e 20 20 69 73 20 61 20 | patter|n is a |
|00001520| 50 65 72 6c 20 72 65 67 | 75 6c 61 72 20 65 78 70 |Perl reg|ular exp|
|00001530| 72 65 73 73 69 6f 6e 20 | 28 79 6f 75 20 62 65 74 |ression |(you bet|
|00001540| 74 65 72 20 71 75 6f 74 | 65 20 69 74 20 21 29 0a |ter quot|e it !).|
|00001550| 58 45 78 69 74 69 6e 67 | 22 3b 0a 58 7d 0a 58 0a |XExiting|";.X}.X.|
|00001560| 58 0a 58 69 66 20 28 6c | 65 6e 67 74 68 20 28 40 |X.Xif (l|ength (@|
|00001570| 41 52 47 56 29 20 3e 20 | 31 29 20 7b 0a 58 20 20 |ARGV) > |1) {.X |
|00001580| 24 77 69 74 68 66 69 6c | 65 6e 61 6d 65 20 3d 20 |$withfil|ename = |
|00001590| 21 24 77 69 74 68 66 69 | 6c 65 6e 61 6d 65 3b 0a |!$withfi|lename;.|
|000015a0| 58 7d 0a 58 0a 58 0a 58 | 23 20 47 65 74 20 74 68 |X}.X.X.X|# Get th|
|000015b0| 65 20 70 61 74 74 65 72 | 6e 20 61 6e 64 20 70 72 |e patter|n and pr|
|000015c0| 6f 74 65 63 74 20 74 68 | 65 20 64 65 6c 69 6d 69 |otect th|e delimi|
|000015d0| 74 65 72 2e 0a 58 24 70 | 61 74 20 3d 20 73 68 69 |ter..X$p|at = shi|
|000015e0| 66 74 3b 0a 58 24 70 61 | 74 20 3d 7e 20 73 23 2f |ft;.X$pa|t =~ s#/|
|000015f0| 23 5c 5c 2f 23 67 3b 0a | 58 0a 58 0a 58 23 20 63 |#\\/#g;.|X.X.X# c|
|00001600| 75 72 72 65 6e 74 20 6c | 69 6e 65 20 77 69 6c 6c |urrent l|ine will|
|00001610| 20 61 6c 77 61 79 73 20 | 62 65 20 61 74 20 65 6e | always |be at en|
|00001620| 64 20 6f 66 20 61 72 72 | 61 79 2c 20 69 2e 65 2e |d of arr|ay, i.e.|
|00001630| 20 24 61 72 79 5b 24 63 | 75 72 72 65 6e 74 70 72 | $ary[$c|urrentpr|
|00001640| 65 5d 0a 58 24 5f 20 3d | 20 3c 3e 3b 0a 58 70 75 |e].X$_ =| <>;.Xpu|
|00001650| 73 68 28 40 61 72 79 2c | 24 5f 29 3b 0a 58 24 63 |sh(@ary,|$_);.X$c|
|00001660| 75 72 72 65 6e 74 70 72 | 65 20 3d 20 30 3b 0a 58 |urrentpr|e = 0;.X|
|00001670| 0a 58 0a 58 23 20 6e 6f | 77 20 75 73 65 20 40 61 |.X.X# no|w use @a|
|00001680| 72 79 20 61 73 20 61 20 | 73 69 6c 6f 2c 20 73 68 |ry as a |silo, sh|
|00001690| 69 66 74 69 6e 67 20 61 | 6e 64 20 70 75 73 68 69 |ifting a|nd pushi|
|000016a0| 6e 67 2e 0a 58 23 20 74 | 68 65 20 6c 65 6e 67 74 |ng..X# t|he lengt|
|000016b0| 68 20 6f 66 20 74 68 65 | 20 40 61 72 79 20 61 74 |h of the| @ary at|
|000016c0| 20 61 6e 79 20 74 69 6d | 65 20 69 73 20 24 63 75 | any tim|e is $cu|
|000016d0| 72 72 65 6e 74 70 72 65 | 20 2b 20 31 0a 58 23 20 |rrentpre| + 1.X# |
|000016e0| 74 68 65 20 63 75 72 72 | 65 6e 74 20 6c 69 6e 65 |the curr|ent line|
|000016f0| 20 69 73 20 40 61 72 79 | 5b 24 63 75 72 72 65 6e | is @ary|[$curren|
|00001700| 74 70 72 65 5d 2c 20 74 | 68 65 20 70 6f 73 74 63 |tpre], t|he postc|
|00001710| 6f 6e 74 65 78 74 20 69 | 73 20 6e 6f 74 20 68 65 |ontext i|s not he|
|00001720| 6c 64 20 69 6e 20 40 61 | 72 79 2e 0a 58 24 73 65 |ld in @a|ry..X$se|
|00001730| 71 20 3d 20 30 3b 0a 58 | 24 6c 61 73 74 6f 75 74 |q = 0;.X|$lastout|
|00001740| 70 75 74 20 3d 20 24 69 | 6e 66 69 6e 69 74 79 3b |put = $i|nfinity;|
|00001750| 20 20 23 6c 61 73 74 20 | 6f 75 74 70 75 74 20 69 | #last |output i|
|00001760| 73 20 69 6e 66 69 6e 69 | 74 65 6c 79 20 6d 61 6e |s infini|tely man|
|00001770| 79 20 6c 69 6e 65 73 20 | 61 67 6f 0a 58 24 63 75 |y lines |ago.X$cu|
|00001780| 72 20 3d 20 40 61 72 79 | 5b 30 5d 3b 20 20 20 20 |r = @ary|[0]; |
|00001790| 20 20 20 23 63 75 72 72 | 65 6e 74 20 6c 69 6e 65 | #curr|ent line|
|000017a0| 0a 58 77 68 69 6c 65 20 | 28 24 63 75 72 29 20 7b |.Xwhile |($cur) {|
|000017b0| 20 20 23 61 73 20 6c 6f | 6e 67 20 61 73 20 74 68 | #as lo|ng as th|
|000017c0| 65 72 65 20 69 73 20 73 | 6f 6d 65 74 68 69 6e 67 |ere is s|omething|
|000017d0| 20 74 6f 20 6c 6f 6f 6b | 20 61 74 0a 58 20 20 69 | to look| at.X i|
|000017e0| 66 20 28 24 72 65 76 65 | 72 73 65 6d 6f 64 65 20 |f ($reve|rsemode |
|000017f0| 3d 3d 20 31 20 3f 20 24 | 63 75 72 20 21 7e 20 2f |== 1 ? $|cur !~ /|
|00001800| 24 70 61 74 2f 6f 20 3a | 20 24 63 75 72 20 3d 7e |$pat/o :| $cur =~|
|00001810| 20 2f 24 70 61 74 2f 6f | 29 20 7b 20 20 20 23 6d | /$pat/o|) { #m|
|00001820| 61 74 63 68 20 66 6f 75 | 6e 64 0a 58 20 20 20 20 |atch fou|nd.X |
|00001830| 69 66 20 28 24 6c 61 73 | 74 6f 75 74 70 75 74 20 |if ($las|toutput |
|00001840| 3c 3d 20 24 70 6f 73 74 | 63 6f 6e 74 65 78 74 29 |<= $post|context)|
|00001850| 20 7b 0a 58 20 20 20 20 | 20 20 26 73 68 6f 77 6c | {.X | &showl|
|00001860| 69 6e 65 20 28 24 63 75 | 72 29 3b 0a 58 20 20 20 |ine ($cu|r);.X |
|00001870| 20 7d 0a 58 20 20 20 20 | 65 6c 73 65 20 7b 0a 58 | }.X |else {.X|
|00001880| 20 20 20 20 20 20 70 72 | 69 6e 74 20 24 64 65 6c | pr|int $del|
|00001890| 69 6d 69 74 65 72 73 74 | 72 69 6e 67 20 69 66 20 |imiterst|ring if |
|000018a0| 28 24 73 65 71 2b 2b 20 | 26 26 20 24 70 72 65 63 |($seq++ |&& $prec|
|000018b0| 6f 6e 74 65 78 74 20 2b | 20 24 70 6f 73 74 63 6f |ontext +| $postco|
|000018c0| 6e 74 65 78 74 20 3e 20 | 30 29 3b 0a 58 20 20 20 |ntext > |0);.X |
|000018d0| 20 20 20 66 6f 72 65 61 | 63 68 20 24 6c 69 6e 65 | forea|ch $line|
|000018e0| 20 28 40 61 72 79 29 20 | 7b 0a 58 20 20 20 20 20 | (@ary) |{.X |
|000018f0| 20 20 20 26 73 68 6f 77 | 6c 69 6e 65 20 28 24 6c | &show|line ($l|
|00001900| 69 6e 65 29 3b 0a 58 20 | 20 20 20 20 20 7d 0a 58 |ine);.X | }.X|
|00001910| 20 20 20 20 7d 0a 58 20 | 20 20 20 24 6c 61 73 74 | }.X | $last|
|00001920| 6f 75 74 70 75 74 20 3d | 20 30 3b 0a 58 20 20 7d |output =| 0;.X }|
|00001930| 0a 58 20 20 65 6c 73 69 | 66 20 28 28 24 63 75 72 |.X elsi|f (($cur|
|00001940| 20 21 7e 20 2f 5c 53 2e | 2a 5c 6e 2f 6f 20 26 26 | !~ /\S.|*\n/o &&|
|00001950| 20 24 70 61 72 61 67 72 | 61 70 68 6d 6f 64 65 20 | $paragr|aphmode |
|00001960| 3d 3d 20 31 29 20 7c 7c | 20 65 6f 66 29 20 7b 0a |== 1) ||| eof) {.|
|00001970| 58 23 70 61 72 61 67 72 | 61 70 68 2f 66 69 6c 65 |X#paragr|aph/file|
|00001980| 20 65 6e 64 0a 58 20 20 | 20 20 66 6f 72 20 28 3b | end.X | for (;|
|00001990| 20 24 63 75 72 72 65 6e | 74 70 72 65 20 3e 3d 20 | $curren|tpre >= |
|000019a0| 30 3b 20 24 63 75 72 72 | 65 6e 74 70 72 65 2d 2d |0; $curr|entpre--|
|000019b0| 29 20 7b 0a 58 20 20 20 | 20 20 20 73 68 69 66 74 |) {.X | shift|
|000019c0| 20 28 40 61 72 79 29 3b | 0a 58 20 20 20 20 7d 0a | (@ary);|.X }.|
|000019d0| 58 20 20 20 20 24 6c 61 | 73 74 6f 75 74 70 75 74 |X $la|stoutput|
|000019e0| 20 3d 20 24 69 6e 66 69 | 6e 69 74 79 3b 0a 58 20 | = $infi|nity;.X |
|000019f0| 20 20 20 63 6c 6f 73 65 | 20 28 41 52 47 56 29 20 | close| (ARGV) |
|00001a00| 69 66 20 28 65 6f 66 29 | 3b 0a 58 20 20 7d 0a 58 |if (eof)|;.X }.X|
|00001a10| 20 20 65 6c 73 69 66 20 | 28 24 6c 61 73 74 6f 75 | elsif |($lastou|
|00001a20| 74 70 75 74 20 3c 3d 20 | 24 70 6f 73 74 63 6f 6e |tput <= |$postcon|
|00001a30| 74 65 78 74 29 20 7b 20 | 20 20 20 20 23 61 6e 6f |text) { | #ano|
|00001a40| 74 68 65 72 20 6c 69 6e | 65 20 6f 66 20 70 6f 73 |ther lin|e of pos|
|00001a50| 74 63 6f 6e 74 65 78 74 | 0a 58 20 20 20 20 26 73 |tcontext|.X &s|
|00001a60| 68 6f 77 6c 69 6e 65 20 | 28 24 63 75 72 29 3b 0a |howline |($cur);.|
|00001a70| 58 20 20 7d 0a 58 20 20 | 23 67 6f 74 6f 20 6e 65 |X }.X |#goto ne|
|00001a80| 78 74 20 6c 69 6e 65 20 | 6f 66 20 69 6e 70 75 74 |xt line |of input|
|00001a90| 3a 0a 58 20 20 24 6c 61 | 73 74 6f 75 74 70 75 74 |:.X $la|stoutput|
|00001aa0| 2b 2b 3b 0a 58 20 20 24 | 5f 20 3d 20 3c 3e 20 69 |++;.X $|_ = <> i|
|00001ab0| 66 20 24 5f 3b 0a 58 20 | 20 70 75 73 68 28 40 61 |f $_;.X | push(@a|
|00001ac0| 72 79 2c 24 5f 29 3b 20 | 0a 58 20 20 69 66 20 28 |ry,$_); |.X if (|
|00001ad0| 24 63 75 72 72 65 6e 74 | 70 72 65 20 3c 20 24 70 |$current|pre < $p|
|00001ae0| 72 65 63 6f 6e 74 65 78 | 74 29 20 7b 0a 58 20 20 |recontex|t) {.X |
|00001af0| 20 20 24 63 75 72 72 65 | 6e 74 70 72 65 2b 2b 3b | $curre|ntpre++;|
|00001b00| 0a 58 20 20 7d 0a 58 20 | 20 65 6c 73 65 20 7b 0a |.X }.X | else {.|
|00001b10| 58 20 20 20 20 73 68 69 | 66 74 28 40 61 72 79 29 |X shi|ft(@ary)|
|00001b20| 3b 0a 58 20 20 7d 0a 58 | 20 20 24 63 75 72 20 3d |;.X }.X| $cur =|
|00001b30| 20 24 61 72 79 5b 24 63 | 75 72 72 65 6e 74 70 72 | $ary[$c|urrentpr|
|00001b40| 65 5d 3b 0a 58 7d 0a 58 | 0a 58 0a 58 0a 45 4e 44 |e];.X}.X|.X.X.END|
|00001b50| 5f 4f 46 5f 46 49 4c 45 | 0a 20 20 69 66 20 74 65 |_OF_FILE|. if te|
|00001b60| 73 74 20 34 37 37 31 20 | 2d 6e 65 20 60 77 63 20 |st 4771 |-ne `wc |
|00001b70| 2d 63 20 3c 27 63 67 72 | 65 70 27 60 3b 20 74 68 |-c <'cgr|ep'`; th|
|00001b80| 65 6e 0a 20 20 20 20 65 | 63 68 6f 20 73 68 61 72 |en. e|cho shar|
|00001b90| 3a 20 5c 22 27 63 67 72 | 65 70 27 5c 22 20 75 6e |: \"'cgr|ep'\" un|
|00001ba0| 70 61 63 6b 65 64 20 77 | 69 74 68 20 77 72 6f 6e |packed w|ith wron|
|00001bb0| 67 20 73 69 7a 65 21 0a | 20 20 66 69 0a 20 20 63 |g size!.| fi. c|
|00001bc0| 68 6d 6f 64 20 2b 78 20 | 27 63 67 72 65 70 27 0a |hmod +x |'cgrep'.|
|00001bd0| 20 20 23 20 65 6e 64 20 | 6f 66 20 27 63 67 72 65 | # end |of 'cgre|
|00001be0| 70 27 0a 66 69 0a 65 63 | 68 6f 20 73 68 61 72 3a |p'.fi.ec|ho shar:|
|00001bf0| 20 45 6e 64 20 6f 66 20 | 61 72 63 68 69 76 65 2e | End of |archive.|
|00001c00| 0a 65 78 69 74 20 30 0a | 65 78 69 74 20 30 20 23 |.exit 0.|exit 0 #|
|00001c10| 20 4a 75 73 74 20 69 6e | 20 63 61 73 65 2e 2e 2e | Just in| case...|
|00001c20| 0a 2d 2d 20 0a 4b 65 6e | 74 20 4c 61 6e 64 66 69 |.-- .Ken|t Landfi|
|00001c30| 65 6c 64 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |eld | |
|00001c40| 20 20 20 20 20 20 49 4e | 54 45 52 4e 45 54 3a 20 | IN|TERNET: |
|00001c50| 6b 65 6e 74 40 73 70 61 | 72 6b 79 2e 49 4d 44 2e |kent@spa|rky.IMD.|
|00001c60| 53 74 65 72 6c 69 6e 67 | 2e 43 4f 4d 0a 53 74 65 |Sterling|.COM.Ste|
|00001c70| 72 6c 69 6e 67 20 53 6f | 66 74 77 61 72 65 2c 20 |rling So|ftware, |
|00001c80| 49 4d 44 20 20 20 20 20 | 20 20 20 20 20 20 55 55 |IMD | UU|
|00001c90| 43 50 3a 20 20 20 20 20 | 75 75 6e 65 74 21 73 70 |CP: |uunet!sp|
|00001ca0| 61 72 6b 79 21 6b 65 6e | 74 0a 50 68 6f 6e 65 3a |arky!ken|t.Phone:|
|00001cb0| 20 20 20 20 28 34 30 32 | 29 20 32 39 31 2d 38 33 | (402|) 291-83|
|00001cc0| 30 30 20 20 20 20 20 20 | 20 20 20 46 41 58 3a 20 |00 | FAX: |
|00001cd0| 20 20 20 20 20 28 34 30 | 32 29 20 32 39 31 2d 34 | (40|2) 291-4|
|00001ce0| 33 36 32 0a 50 6c 65 61 | 73 65 20 73 65 6e 64 20 |362.Plea|se send |
|00001cf0| 63 6f 6d 70 2e 73 6f 75 | 72 63 65 73 2e 6d 69 73 |comp.sou|rces.mis|
|00001d00| 63 2d 72 65 6c 61 74 65 | 64 20 6d 61 69 6c 20 74 |c-relate|d mail t|
|00001d10| 6f 20 6b 65 6e 74 40 75 | 75 6e 65 74 2e 75 75 2e |o kent@u|unet.uu.|
|00001d20| 6e 65 74 2e 0a | |net.. | |
+--------+-------------------------+-------------------------+--------+--------+