In article <bob-4638D5.12045601032008@[EMAIL PROTECTED]
>,
Robert Peirce <bob@[EMAIL PROTECTED]
> wrote:
> In article <nospam.News.Bob-166AC4.20065929022008@[EMAIL PROTECTED]
>,
> Bob Harris <nospam.News.Bob@[EMAIL PROTECTED]
> wrote:
>
> > In article <bob-A604BE.14425829022008@[EMAIL PROTECTED]
>,
> > Robert Peirce <bob@[EMAIL PROTECTED]
> wrote:
> >
> > > data $1 |
> > > tr : '\t' |
> > > field 1 3 4 |
> > > tail -200 |
> > >
> > > while read -r line
> > > do print -r -- $line
> > > done
> >
> > why not try
> >
> > data $1 | awk -F: '{print $1, $3, $4}' | tail -200
>
> No reason. I just tried to run the script as it sat. I figured I would
> worry about changing it once I got it working. Besides, this change
> doesn't make the while loop work.
>
> The main question was why can't I pipe information into a ksh while loop
> on my Mac when I can do it on other Unix installations? This is made
> more confusing to me by the fact that the following does work:
>
> . . .
> tail -200 > tmp-file
>
> exec 0< tmp-file
> while read -r line
> . . .
>
> From my point of view, stdin is stdin and a pipe should work here.
Well, why not try a different shell. For example instead of ksh,
try bash or zsh. The 'while', the 'read' and the stdin
redirection is a function of the shell. Perhaps it is your shell
that is having problems.
If the behavior works with a different shell, then check the
version of ksh on Mac OS X vs the other Unix systems you use. On
Tiger I'm seeing:
version sh (AT&T Labs Research) 1993-12-28 p
and Leopard is showing:
version sh (AT&T Research) 1993-12-28 s+
Mac****ts says it has the following 2 versions of ksh
ksh93 @[EMAIL PROTECTED]
shells/ksh93
pdksh @[EMAIL PROTECTED]
shells/pdksh
Bob Harris


|