From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28847 invoked by alias); 7 Sep 2012 12:55:09 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: X-Seq: 17227 Received: (qmail 26868 invoked from network); 7 Sep 2012 12:55:08 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED,RCVD_IN_DNSWL_LOW, T_DKIM_INVALID autolearn=no version=3.3.2 Received-SPF: pass (ns1.primenet.com.au: SPF record at _spf.google.com designates 209.85.212.43 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; bh=mFo4Io8xwNSO8HgPknXktOB64eq1818jFDQGmqOGr7I=; b=jsAnkjrGqOq9z1/hs7m5da8Ds+iVjZzRScF7airT+XHOVUzf30zPGdCxusrH0UD5xZ DdeH6DWwK0Mm326C/lJKA7fUSJR4E5cDMFvFyEZzFiv2xHAF3R8ywuWD9YXPlTd+gUWv Bzz0LB/80jpH3QxxdqedGqnv+AePo9Xii1fztcU5vwB2lLehkQ0Bjvve8AiCm7Dkffoh 4uLzjNmMfFmIXqiucSZU1J3Oi1I8n/Q85ypHO54eLJJqeS3BJUj0zczsNcTYmfutRhto utHJGeKhCFRcN40QD8VPhs5PCE/IbrdILAngSgVUJV3A77zWwNNdn9FRZnib/CsxiN32 /Y2g== MIME-Version: 1.0 In-Reply-To: <29236168-55B5-4555-9ACA-B1D21D345EA9@biskalar.de> References: <29236168-55B5-4555-9ACA-B1D21D345EA9@biskalar.de> From: =?UTF-8?B?SsOpcsOpbWllIFJvcXVldA==?= Date: Fri, 7 Sep 2012 14:47:08 +0200 Message-ID: Subject: Re: double quoted expansion question To: Sebastian Stark Cc: zsh-users@zsh.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi, 2012/9/7 Sebastian Stark : > I am trying to make a unique list of tags that is given in a string with = a certain format, e. g.: > > servers=3D" > madeira linux,gpu,users > madeira2 linux,gpu,users > smtp linux,mail,smtp > isar linux,users > easygwa linux,web,external > " > > The format is: server name, space, tag, comma, tag, comma, tag ... > > What I want from the above list is this: > > external gpu linux mail smtp users web > > and I get it with: > > print ${(s:,:uo)${(j:,:)${${(f)servers}//* /}}} > > However, if I do this: > > print "${(s:,:uo)${(j:,:)${${(f)servers}//* /}}}" > > I get: > > external linux web > > This also happens when I use the variable expansion expression in a here = document, which, I suppose, is undergoing the same treatment as double quot= ed strings. > > What I would like to understand here is why the output changes the way it= does when I add double quotes around my expression. I would expect the sam= e output as without. If anybody could shed some light please, I guess it's = just something obvious I cannot see. I'm not 100=C2=A0% sure, but I suppose the quotes prevents the shell from splitting your string on $IFS, so you only have *one* string, and the =E2=80=9C//* /" expression suppresses everything before the last space, leaving only the tags of the last line. Best regards, --=20 J=C3=A9r=C3=A9mie