zsh-users
 help / color / mirror / code / Atom feed
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


  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).