From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10943 invoked from network); 22 Dec 2003 10:09:32 -0000 Received: from sunsite.dk (130.225.247.90) by ns1.primenet.com.au with SMTP; 22 Dec 2003 10:09:32 -0000 Received: (qmail 18342 invoked by alias); 22 Dec 2003 10:09:19 -0000 Mailing-List: contact zsh-users-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 6952 Received: (qmail 18330 invoked from network); 22 Dec 2003 10:09:19 -0000 Received: from localhost (HELO sunsite.dk) (127.0.0.1) by localhost with SMTP; 22 Dec 2003 10:09:19 -0000 X-MessageWall-Score: 0 (sunsite.dk) Received: from [130.95.128.56] by sunsite.dk (MessageWall 1.0.8) with SMTP; 22 Dec 2003 10:9:18 -0000 Received: from 127.0.0.1 (localhost [127.0.0.1]) by dummy.domain.name (Postfix) with SMTP id C7788366A8F for ; Mon, 22 Dec 2003 18:09:16 +0800 (WST) Received: from gulag.gu.uwa.edu.au (gulag.guild.uwa.edu.au [130.95.100.5]) by asclepius.uwa.edu.au (Postfix) with ESMTP id B5756366A3A for ; Mon, 22 Dec 2003 18:09:16 +0800 (WST) Received: from gulag.gu.uwa.edu.au (devenish@localhost [127.0.0.1]) by gulag.gu.uwa.edu.au (8.12.3/8.12.3/Debian-6.6) with ESMTP id hBMA9GoJ029719 for ; Mon, 22 Dec 2003 18:09:16 +0800 Received: (from devenish@localhost) by gulag.gu.uwa.edu.au (8.12.3/8.12.3/Debian-6.6) id hBMA9Fu6029717 for zsh-users@sunsite.dk; Mon, 22 Dec 2003 18:09:15 +0800 Date: Mon, 22 Dec 2003 18:09:15 +0800 From: James Devenish To: zsh-users@sunsite.dk Subject: Re: extracting fields Message-ID: <20031222100915.GA29651@mail.guild.uwa.edu.au> Mail-Followup-To: zsh-users@sunsite.dk References: <20031222083820.GA81148@ppe.happygiraffe.net> <25039.1072086714@gmcs3.local> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <25039.1072086714@gmcs3.local> User-Agent: Mutt/1.3.28i In message <25039.1072086714@gmcs3.local> on Mon, Dec 22, 2003 at 10:51:54AM +0100, Oliver Kiddle wrote: > Dominic Mitchell wrote: > Zsh has no concept of two-dimensional arrays so you can't split every > element of an array and expect indexing tow work on each element like > that. You would have to have a for loop for each array element. > > Alternatively, if it is is the second field you want, you can > probably do: > > ${${pg_tables#*|}%%|*} Yes, I think he might simply have been overlooking the ${...${...}...} construct. For example: > Dominic Mitchell wrote: > % echo $pg_tables[0] > public|book|table|dom [...] > Now I'm interested in the table name which is the 2nd field. Selecting "column c" of "record r" could be like this: % integer r=1 c=2; echo ${${(s:|:)pg_tables[$r]}[$c]}