On 9/12/22 10:33, enh wrote: > here's BSD sed on macOS: > > *~$ *echo one | /usr/bin/sed N > > *~$ *echo -e 'one\none\none' | /usr/bin/sed 'N;ax' > > sed: 1: "N;ax": command a expects \ followed by text > > *~$ *
Yeah, being able to have the payload of "a" or "i" on the same line is a gnu extension, probably needs something like sed $'n;a\nx' or even sed -e 'N;a' -e 'x' Either way, looks like mac sed is following posix. (Unsurprising given it seems to be a pure-ish posix implementation.) What I'm wondering was "did the gnu behavior change since I implemented sed, or did I just read the spec and not test gnu in this corner case"? Hmmm... I have a xubuntu 12.10 iso image lying around, boot that, and... $ echo one | sed N one Yup, looks like I implemented what posix said rather than what gnu did. (The next question of course is gnu does gnu KNOW they're deviating from posix here? Is this intentional, or a bug?) Eh, fix it up while I'm in the area. If gnu's behavior has been consistent for ten years, _matching_ it probably isn't going to cause cause problems? Rob P.S. Ok, now I'm curious HOW long it's been... In Red hat 9 from 2003 the "N" after EOF adds a blank line. So it ends with two \n. Bravo. _______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
