Re: What's cooking in git.git (Jan 2021, #02; Fri, 8)
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 9, 2021, 23:08 UTC
- Message-ID
- <xmqqft39emiu.fsf@gitster.c.googlers.com>
- In-Reply-To
- <CAJDDKr6V+kKMs4yz+YQx1AhiY5qQwENfs_yZqxXWBqmLUk2oAw@mail.gmail.com>
David Aguilar <davvid@gmail.com> writes:
Show 10 quoted lines
> Fun times in sed portability land. After a bit of experimentation,
> this is what I've managed to whip up:
>
> cr=$(printf '\x0d')
> sed -e "/^<<<<<<< /,/^=======$cr\{0,1\}$/d" -e '/^>>>>>>> /d' tiger
>
> - Instead of \r use printf to capture CR into a string so that we can
> embed the literal using $cr.
> - DQ "..." instead of SQ '...' to allow $cr to be substituted in the string.
> - Instead of \? use \{0,1\} which seems to work on both macOS and Linux.Ah, all the fun with avoiding GNU-ism in scripts; thanks for figuring it out.
I am perfectly fine with the above, but I also am OK with Perl script. We may even be able to generate three output files in a single pass by passing their filenames and open them for writing in the script.
> That seems to work and the tests now pass. > If not sed, is there perhaps a perl equivalent for these multi-line > delete-from-X-until-Y expressions that might provide better > portability?
> I'll start putting together a patch shortly as this seems to work in > practice. Let me know if y'all have any sugs or if there are any > portability pitfalls I'm not considering.