Return to BSD News archive
Newsgroups: comp.unix.bsd.freebsd.misc
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!news.ecn.uoknor.edu!news.wildstar.net!news.sdsmt.edu!news.mid.net!mr.net!news.sgi.com!news.msfc.nasa.gov!newsfeed.internetmci.com!newsreader.sprintlink.net!news.sprintlink.net!news-pen-4.sprintlink.net!news.sprintlink.net!news-dc-10.sprintlink.net!rockyd!dnn.rockefeller.edu!dan
From: dan@dnn.rockefeller.edu (Dan Ts'o)
Subject: Re: sh command shell script writing. i'm stuck
X-Nntp-Posting-Host: dnn.rockefeller.edu
Message-ID: <Dv4rGs.2nv@rockyd.rockefeller.edu>
Sender: notes@rockyd.rockefeller.edu (News Administrator)
Organization: Rockefeller University
X-Newsreader: TIN [version 1.2 PL2]
References: <4t02d1$nec@cliff.island.net> <Pine.HPP.3.91.960722171415.29481F-100000@lint.cisco.com>
Date: Fri, 26 Jul 1996 03:10:03 GMT
Lines: 47
Sridhar Krishnan (skrishna@cisco.com) wrote:
: If you have (n)awk, try something like:
: awk -v x=8 '(NR==x){ print $0; exit }' file
: x = line number you wish to print.
: On Mon, 22 Jul 1996, Victor Aker wrote:
: > I am trying to import text one line at a time into a shell script that I am
: > writing, and having a real bugger of a time. I need to grab these lines one by
: > one, and explicitly state each time which line number it is (Only grabbing, as
: > an example, line 3 and line 3 only). So far, I have gotten this far:
: >
: > tempuser=$(ls /home | cat -n | grep -G "$counter"
: >
: > where counter is the number of the line. One problem, this output is giving me
: > the following:
: >
: > 3 ets
: >
: > where I only need
: >
: > ets
Others have given you solutions as to how to read in one line at a
time into a script. But these are all a little nasty (because they run awk
or grep, which is pretty big and then that program re-reads the whole file
just to pick out another line). Perhaps you could expand on just what you
are trying to do. There maybe a more efficient way.
For example, how about something like:
(
while read line
do
# Do whatever
echo "Here is another line: $line"
done
) < input_file
--
Cheers,
Dan Ts'o 212-327-7671
Dept. of Neurobiology FAX: 212-327-7671
The Rockefeller University
1230 York Ave. Box 138 dantso@cris.com
New York, NY 10021 dan@dna.rockefeller.edu