Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Can this be done with an array parameter?
- X-seq: zsh-users 7061
- From: DervishD <raul@xxxxxxxxxxxx>
- To: Zsh Users <zsh-users@xxxxxxxxxx>
- Subject: Can this be done with an array parameter?
- Date: Thu, 19 Feb 2004 17:46:31 +0100
- Mail-followup-to: Zsh Users <zsh-users@xxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- Organization: Pleyades
Hi all :)
I need to process some file contents line-by-line, and I was
going to do it by using a loop, like this:
cat filename | while read line
do
things to do with $line
done
Since some of the work would be better done with an array, I
changed this to:
set -A info
cat filename | while read line
do
info=($info $line)
done
This effectively store every line as a separate item in the array
parameter, which surprises me. Lets assume the file contents are:
A line
Another line
Yet another line
More lines below
Then the loop will result in (just guessing...):
info=( A line)
info=(A line Another line)
info=(A line Another line Yet another line)
info=(A line Another line Yet another line More lines below)
But instead, the 'line' seems to be added *quoted* :?? It's like
Zsh is reading my mind or so. Can anybody explain? As far as I knew,
the more correct way of doing the assignment in the loop, will be:
index=$(($index+1))
info[$index]="$line"
considering 'index' value of '0' at start.
And my original question: can the array be assigned one line of
the file per slot without the loop?
Thanks a lot in advance :)
Raúl Núñez de Arenas Coronado
--
Linux Registered User 88736
http://www.pleyades.net & http://raul.pleyades.net/
Messages sorted by:
Reverse Date,
Date,
Thread,
Author