Jeff King <peff@xxxxxxxx> writes: > On Sun, Feb 21, 2016 at 11:43:45PM +0000, John Keeping wrote: > >> On Sun, Feb 21, 2016 at 04:15:31PM -0500, Eric Sunshine wrote: >> > On Sun, Feb 21, 2016 at 12:32 PM, John Keeping <john@xxxxxxxxxxxxx> wrote: >> > > GNU grep 2.23 detects the input used in this test as binary data so it >> > > does not work for extracting lines from a file. We could add the "-a" >> > > option to force grep to treat the input as text, but not all >> > > implementations support that. Instead, use sed to extract the desired >> > > lines since it will always treat its input as text. >> > > >> > > Signed-off-by: John Keeping <john@xxxxxxxxxxxxx> >> > > --- >> > > diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh >> > > @@ -35,7 +35,7 @@ exit 1 >> > > check_entries () { >> > > # $1 == directory, $2 == expected >> > > - grep '^/' "$1/CVS/Entries" | sort | cut -d/ -f2,3,5 >actual >> > > + sed -ne '\!^/!p' "$1/CVS/Entries" | sort | cut -d/ -f2,3,5 >actual >> > >> > This works with BSD sed, but double negatives are confusing. Have you >> > considered this instead? >> > >> > sed -ne '/^\//p' ... >> >> What do you mean double negatives? Do you mean using "!" as an >> alternative delimiter? I find changing delimters is normally simpler >> than following multiple levels of quoting for escaping slashes, although >> in this case it's simple enough that it doesn't make much difference. > > I agree that changing delimiters is much nicer than backslashes. But I > wonder if using "!" is more confusing than it needs to be, given its > other meanings. > > I dunno. I admit that the backslash threw me off, too (since it needs > escaped in interactive shells, I first assumed that's what was going > on). Using backslash to select the delimiter was new to me. I've usually > seen: > > s!/foo/!/bar/! > > which is arguably a little more clear. Too bad we cannot do: > > m!/foo! > > which I think reads better. Oh well. Maybe: > > sed -ne '\#^/#p' > > would be more readable, but I'm just bikeshedding at this point. The > grep invocation really was the most clear. :-/ Eric's '/^\//' was the most straight-forward and easiest to see what is going on, I would think. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html