From: "Lawrence Velázquez" <larryv@zsh.org>
To: "Ray Andrews" <rayandrews@eastlink.ca>
Cc: zsh-users@zsh.org
Subject: Re: line continuation with sed
Date: Fri, 14 Oct 2022 02:35:43 -0400 [thread overview]
Message-ID: <ee2cd760-2bba-4c1c-9c18-b8cc114a4ff8@app.fastmail.com> (raw)
In-Reply-To: <9184bbff-9e68-7b02-2595-3474b016dfff@eastlink.ca>
On Thu, Oct 13, 2022, at 2:25 PM, Ray Andrews wrote:
> I'm wondering if this is a zsh issue or entirely sed's fault but:
>
> $ var=$( print -l $var | sed \
> -re 's/.../' \ # this is fine
> -re 's/.../'\ # this throws an error
> which I'd expect
> -re 's/.../' \ # this throws an error ...
> -re 's/.../' )
As an aside, you only need to specify -r (or -E) once. Repeating
it has no effect.
> ... if there is a bloody space AFTER the backslash and before the
> newline. Thing is it's an invisible error, I just wasted the morning
> with some sed errors which refused to be found because they were
> invisible. What logic would make a space before the newline an error?
> I'm thinking it must be a zsh issue because zsh is responsible for line
> continuation.
It is not an "issue", but zsh is indeed responsible.
> Multiple spaces between sed expressions are fine as one
> would expect so if the backslash simply wrapped the line, there should
> be no issue. Mind, haven't I whined about this before? Could there
> ever be a situation where backslash-space-newline was not logically
> reducible to backslash-newline?
What makes you think they are equivalent? They are not.
https://zsh.sourceforge.io/Doc/Release/Shell-Grammar.html#Quoting
A character may be quoted (that is, made to stand for itself)
by preceding it with a '\'. '\' followed by a newline is
ignored.
So the sequence \ SP LF is a quoted space followed by an unquoted
line feed. In this example (and your original), the latter acts
in its common capacity as a sublist terminator:
% eval $'printf "<%s>\n" foo \\\nbar'
<foo>
<bar>
% eval $'printf "<%s>\n" foo \\ \nbar'
<foo>
< >
zsh: command not found: bar
--
vq
next prev parent reply other threads:[~2022-10-14 6:36 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-13 18:25 Ray Andrews
2022-10-14 6:35 ` Lawrence Velázquez [this message]
2022-10-14 11:20 ` Dominik Vogt
2022-10-14 15:44 ` Ray Andrews
2022-10-14 17:10 ` Dominik Vogt
2022-10-14 20:38 ` Lawrence Velázquez
2022-10-14 22:26 ` Ray Andrews
2022-10-14 10:57 ` Marc Chantreux
2022-10-14 11:19 ` Peter Stephenson
2022-10-14 17:15 ` Dominik Vogt
2022-10-14 22:21 ` Ray Andrews
2022-10-15 2:34 ` Aaron Schrab
2022-10-15 2:57 ` Ray Andrews
2022-10-15 5:08 ` Bart Schaefer
2022-10-15 16:53 ` Ray Andrews
2022-10-17 1:07 ` Bart Schaefer
2022-10-17 3:40 ` Ray Andrews
2022-10-17 4:20 ` Bart Schaefer
2022-10-17 9:19 ` Pier Paolo Grassi
2022-10-17 9:24 ` Pier Paolo Grassi
2022-10-17 9:31 ` Pier Paolo Grassi
2022-10-17 16:11 ` Bart Schaefer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ee2cd760-2bba-4c1c-9c18-b8cc114a4ff8@app.fastmail.com \
--to=larryv@zsh.org \
--cc=rayandrews@eastlink.ca \
--cc=zsh-users@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).