From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=FREEMAIL_FROM, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 8d55ba12 for ; Tue, 5 Feb 2019 21:30:41 +0000 (UTC) Received: (qmail 499 invoked by alias); 5 Feb 2019 21:30:28 -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: List-Unsubscribe: X-Seq: 23861 Received: (qmail 14770 invoked by uid 1010); 5 Feb 2019 21:30:28 -0000 X-Qmail-Scanner-Diagnostics: from mout.gmx.net by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.100.2/25112. spamassassin: 3.4.2. Clear:RC:0(212.227.15.18):SA:0(-2.6/5.0):. Processed in 1.85541 secs); 05 Feb 2019 21:30:28 -0000 X-Envelope-From: dominik.vogt@gmx.de X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Date: Tue, 5 Feb 2019 22:30:16 +0100 From: Dominik Vogt To: zsh-users@zsh.org Subject: Re: Parsing CVS files Message-ID: <20190205213016.nzc5b4uyjg7bufx5@gmx.de> Reply-To: dominik.vogt@gmx.de Mail-Followup-To: zsh-users@zsh.org References: <20190202185911.vsmvvsp5df3yaa3z@gmx.de> <157d7b5d59005133ae4722f5c452db6aa0078547.camel@ntlworld.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) X-Provags-ID: V03:K1:u9dU4jab1caXVgrKjV0Yn7Z7ittXzDi2vXxO/Ic6dXBw5XMKLXL w0YbfRK98ECU5lWpyGJjbjlzy3aZKPOwTd30jeF8TSJqY+50j9+FwT1B3gte6qNUmagLbWW gPXqVSrmY9LlCphqeLHVF05nLwzBHqiLFmXknaW8ZCwmEJFYPDJlL1cb2Mh+LOHF8jFB/+j rL6uRdMb8X75Di5iRaUYw== X-UI-Out-Filterresults: notjunk:1;V03:K0:ujy0Lk2E62U=:UgfZykKvRvzfMIOzyFhTKj CUaTKOh+9jA+MznIAOMDMk8hPxRN+0aF7AU1kOwumBE44clYuPZ5dfB+MABKoFj6cnVSli1DU wgKayMBpzqJqKaJpQE4JJpzxhtjpii9R30BMUvxtcWWPzyDuTFat+l8Y0z2uV7NaFDt7oxala Apun4o1NvzKRkQ2ngJUeYgKI8Qzfhf7s9DaMMRDu65yWqpxr/N+PZ2AA9v6vmecZ+8w0Wxg8X VHKU0qW2StZe5L3DTc7ruGi0oyi7JbyE63vPhLhvXqUSjupZDXdJUV4qHInZP82m0FmG1rjSo nRhkftEswrQu2qzlYsW7kdEWlONCNUlHsHFzZhcEoPxjDFjRRHzu4LCegicWkSkzh0j1uhvpB g4qMtFfd62NXO2rLmAAOmIKN6fK++wdHJ4ozgPBRS9gFELjh3hra1YxYEHvCVazGHVqHbvLm4 tC1RbDjAfQ/5o1r1BzyMj949ZX7GHXK6Rcp55fL2a4WL+LHJcAq8FQ13yXS8HG3mPyCPNrS9q cPBdtoHw6euHSkEMPGrD1hW3ybrR5rt0NtXRj3fhtOV0o/Tpgx7MvF2DXaX6QDlaIH87THQB4 kf6Be+tKX+PFcW3MtGEMCRsJaNAJ0+GbKLaLf7KWu6+p7SC2qGMLiunLhxlRI6BdkHT6tLKUO 3QMCuDCbV6/bqn32rihl578hLuWMzZ+htuCY651xvIg/6hNSb9URfRi8vR7cJNF/mzs8EPHqd t8Gta01NdRqBLLlaySzEvPc0gxcNszEH1RacVwoT/qPK3fNihFG65v11E6fBjWpkBfanhWSIQ NI4uQlW8DPpAyNQPX/RdQGLe9ZzbFM0nyd6Im9vHLOAhDdRcRf7oBAHS+uWJsUSut5DvKph/M TVwS9g9xXmxRlPJGQ6zPYe3zV3rgQDLDBF/0U/kVfCki+WNEN5Ns1Y4D0rqomF On Sun, Feb 03, 2019 at 05:19:08AM +0100, Sebastian Gniazdowski wrote: > On Sat, 2 Feb 2019 at 21:27, Peter Stephenson > > Also, if you want to keep empty fields, you'll need the final result > > to use "${(@}this}". Probably easiest to assign to an array as otherwise > > the quotes will affect the substitution. > > I've had to use "(@)" for every segment, i.e.: > > % line='abc,"efg, hehe,yeah",c,,d' > % print -rl "${(@)${(@)${(@)${(z)${${line// /\\ }//,/, }}%%,}//, /,}//\\ / }" > abc > "efg, hehe,yeah" > c > > d > > And with a random "(@)" missing: > % print -rl "${(@)${${(@)${(z)${${line// /\\ }//,/, }}%%,}//, /,}//\\ / }" > abc "efg, hehe,yeah" c d Uff, looks complicated but should fix my problem. Thanks! Spaces and backslashes are no real problem beacause they can be replaced with some unique character sequence before splitting. Ciao Dominik ^_^ ^_^ -- Dominik Vogt