BSD sedgibt bei lder Ausgabe von Zeichen in einer visuell eindeutigen Form keine Zeilenumbrüche in einer visuell eindeutigen Form aus.
Von sed (1) auf OpenBSD:
[2addr]l
(The letter ell.) Write the pattern space to the standard output
in a visually unambiguous form. This form is as follows:
backslash \\
alert \a
backspace \b
form-feed \f
carriage-return \r
tab \t
vertical tab \v
(Beachten Sie die fehlende Erwähnung von Zeilenumbrüchen).
GNU sedenthält jedoch Zeilenumbrüche in den Zeichensatz, die eindeutig angezeigt werden sollen. Dies ist eine Erweiterung des Zeichensatzes, den der POSIX-Standard fürsed Erwähnungen verwendet (der Satz, den BSD sedverwendet). GNU sedverhält sich auch dann so, wenn --posixes in der Befehlszeile verwendet wird.
GNU sedgibt auch 10zweimal aus, BSD sednicht. Wenn Sie GNU sedmit POSIXLY_CORRECTset oder mit --posixausführen, wird es 10nur einmal ausgegeben , wie dies bei BSD der sedFall ist.
Dies liegt daran, dass GNU sedstandardmäßig den Teil der POSIX-Definition des sed NBefehls ignoriert, der besagt
Wenn keine nächste Eingabezeile verfügbar ist, Nverzweigt das Befehlsverb zum Ende des Skripts und wird beendet, ohne einen neuen Zyklus zu starten oder den Musterbereich in die Standardausgabe zu kopieren.
Beachten Sie auch, dass das pin Ihrem sedProgramm niemals ausgeführt wird, da Dein neuer Zyklus beginnt.
$!NanstattNwann-nnicht aktiviert ist.