Xref: utzoo comp.unix.wizards:9110 comp.unix.questions:7416 Path: utzoo!attcan!uunet!husc6!ukma!rutgers!cmcl2!brl-adm!brl-smoke!gwyn From: gwyn@brl-smoke.ARPA (Doug Gwyn ) Newsgroups: comp.unix.wizards,comp.unix.questions Subject: Re: grep replacement Message-ID: <8024@brl-smoke.ARPA> Date: 6 Jun 88 00:31:58 GMT References: <136@rubmez.UUCP> <449@happym.UUCP> <7944@alice.UUCP> <8012@brl-smoke.ARPA> <23133@bu-cs.BU.EDU> <8022@brl-smoke.ARPA> <23142@bu-cs.BU.EDU> Reply-To: gwyn@brl.arpa (Doug Gwyn (VLD/VMB)) Organization: Ballistic Research Lab (BRL), APG, MD. Lines: 20 In article <23142@bu-cs.BU.EDU> bzs@bu-cs.BU.EDU (Barry Shein) writes: >Anyhow, at least we're back to the technical issues and away from >calling anyone who disagrees Neanderthals... Oh, but the latter is much more fun! Anyway, the fundamental issue seems to be that there are (at least) two types of external data objects: streams -- transient data, takes special effort to capture files -- permanent data with an attached name UNIX nicely makes these appear much the same, but they do have some inherent differences, and this one-pass versus multi-pass context discussion has brought out one of them. There is nothing particularly wrong with the "tee" approach to turn a stream into a file long enough for whatever work is being done. The converse is often done; for example many of my shell scripts, after parsing arguments, exec a pipeline that starts cat $* | ... in order to ensure a stream input to the rest of the pipeline.