On Mon, 2003-08-04 at 15:39, David Haller wrote:
Keine Ahnung, was die Standards zu a\text sagen, ob sich da die Standards geändert haben, oder aber das ein Bug in neueren gnu-seds ist.
AFAIK ist 'a' ein Standardbefehl, aber eben mit der Syntax
a\<NEWLINE> text
ebenso wie 'i' und 'c'.
Im Allgemeinen ist sed sowieso grauenvoll unportabel und viele sed-Implementationen derart fehlerträchtig, das man gut daran tut, derartige "Fortgeschrittene Features" zu vermeiden, wenn es portabel sein soll :-)
Naja, wenn man sich an die Standardsyntax haelt ist sed schon portabel. Auf welchen Standard beziehst Du dich? Sed hat im Laufe der Jahrzehnte einige Änderungen erfahren ...
Die Leuts in dcou.shell sollten da aber genaueres wissen. Die autoconf-Leute auch :)
Hauptproblem mit "portablen" sed-Scripten: Hart-codierte Puffergrössen: Viele ältere Sed-Implementationen benutzen erstaunlich kleine interne Arrays/Puffer u.ä. Führt bei sed-Scripten eines gewissen Umfangs zu "obskurem" Verhalten (Im besten Fall hart Abstürze, gelegentlich wird auch ein Teil eines Sed-Scriptes "stillschweigend" nicht abgearbeitet.) Sonst recht gängige Probleme mit sed: * \<int> (Rückverweis) ist nicht portabel. Manche ältere Seds kennen es nicht, manche sed's besitzen nur eine sehr kleine Zahl Puffer für \<int>. * Diverse Probleme bez. i18n (Verarbeitet sed nur ASCII-Dateien oder "TEXT"-Dateien im Allgemeinen? Wie ersetzt man "portabel" ein 'ä' durch ein 'ô'? u.ö.) * \n vs. \n\r: Einige sed-Implementierungen haben Probleme mit der Verarbeitung von "Zeilenenden" (Insbesondere solche auf DOS-ähnlichen Systemen. Manche seds expandieren alle \n in \r\n; Manche seds expandieren "alle \n in gematchten Zeilen" in \r\n). * Diverse Bugs in diversen Implementierungen. Bez. GNU-sed: Besitzt diverse Erweiterungen, die sich in Linux/GNU Entwicklungen "einschleichen" aber nicht portabel sind. Ralf