From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26433 invoked from network); 26 Oct 2005 10:14:43 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 26 Oct 2005 10:14:43 -0000 Received: (qmail 77475 invoked from network); 26 Oct 2005 10:14:36 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 26 Oct 2005 10:14:36 -0000 Received: (qmail 8587 invoked by alias); 26 Oct 2005 10:14:29 -0000 Mailing-List: contact zsh-users-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 9564 Received: (qmail 8575 invoked from network); 26 Oct 2005 10:14:28 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by sunsite.dk with SMTP; 26 Oct 2005 10:14:28 -0000 Received: (qmail 76335 invoked from network); 26 Oct 2005 10:14:28 -0000 Received: from ns9.hostinglmi.net (213.194.149.146) by a.mx.sunsite.dk with SMTP; 26 Oct 2005 10:14:26 -0000 Received: from 212.red-80-35-44.staticip.rima-tde.net ([80.35.44.212] helo=localhost) by ns9.hostinglmi.net with esmtpa (Exim 4.52) id 1EUiIj-0006Fh-Fs; Wed, 26 Oct 2005 12:14:33 +0200 Date: Wed, 26 Oct 2005 12:15:29 +0200 From: DervishD To: Peter Stephenson Cc: Zsh Users Subject: Re: Per line ${..//..} Message-ID: <20051026101529.GA834@DervishD> Mail-Followup-To: Peter Stephenson , Zsh Users References: <20051026094047.GA658@DervishD> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.4.2.1i Organization: DervishD X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - ns9.hostinglmi.net X-AntiAbuse: Original Domain - sunsite.dk X-AntiAbuse: Originator/Caller UID/GID - [0 0] / [47 12] X-AntiAbuse: Sender Address Domain - dervishd.net X-Source: X-Source-Args: X-Source-Dir: X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.0.4 Hi Peter :) * Peter Stephenson dixit: > DervishD wrote: > > I have a parameter containing a bunch of lines, and I have to get > > rid of comments (that is "$line" == (#s)[" $'\t'"]#\#*(#e)) and empty > > lines (that is "$line" == (#s)[" $'\t'"]#(#e)). I've tried using the > > ${..//..} syntax for doing substitutions in parameters, but with no > > success because I don't know how to properly mark the beginning and > > end of a line. > > You can do something like: > > % lines=(foo "# comment" bar " ") > % print -l $lines > foo > # comment > bar > > % print -l ${lines:#[[:space:]]#(\#*|)} > foo > bar Unfortunately the original data is not in an array :( Will this work?: olddata=(${(f)olddata)) olddata=(${olddata:#...}) I completely forgot about the ${NAME:#PATTERN}. Better said, I was stuck with ${..//..}. Thanks a lot for the suggestion. You've given me another idea... I can convert all parameters that store file contents into arrays, although some of them have \C-M as newline markers, but that's easy to solve. This way I can do per-line processing without the need for loops. Raúl Núñez de Arenas Coronado -- Linux Registered User 88736 | http://www.dervishd.net http://www.pleyades.net & http://www.gotesdelluna.net It's my PC and I'll cry if I want to...