From: Junio C Hamano Date: Wed, 30 Oct 2013 19:30:22 GMT Subject: Re: [PATCH] Change sed i\ usage to something Solaris' sed can handle Message-ID: In-Reply-To: Ben Walton writes: > On Mon, Oct 28, 2013 at 5:39 PM, Andreas Schwab wrote: >> Ben Walton writes: >> >>> diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh >>> index 3fb4b97..0126154 100755 >>> --- a/t/t4015-diff-whitespace.sh >>> +++ b/t/t4015-diff-whitespace.sh >>> @@ -145,7 +145,8 @@ test_expect_success 'another test, with --ignore-space-at-eol' 'test_cmp expect >>> test_expect_success 'ignore-blank-lines: only new lines' ' >>> test_seq 5 >x && >>> git update-index x && >>> - test_seq 5 | sed "/3/i \\ >>> + test_seq 5 | sed "/3/i\\ >>> +\ >>> " >x && >> >> Why do you need the \? Since it is inside double quotes the shell >> will remove it during expansion. > > It's an escape. Without it, sed throws: > > sed: -e expression #1, char 5: expected \ after `a', `c' or `i' I think Andreas means the "feed blank line" part, i.e. >> + test_seq 5 | sed "/3/i\\ >> +\ >> " >x && should be the same as >> + test_seq 5 | sed "/3/i\\ >> " >x && because the lone \ will be eaten and will not be seen by sed. Do you see different results on Solaris between the following two? $ echo "/3/i\\ \ " | od $ echo "/3/i\\ " | od