Ich führe die folgenden 2 sedBefehle aus. Der erste fügt Zeilenvorschubzeichen hinzu, wo ich sie haben möchte, der zweite fügt Zeilenvorschubzeichen hinzu, wo ich sie haben möchte, ABER fügt am Ende der Datei ein zusätzliches hinzu, wo es vorher kein Zeichen gab.
sed -e 's|\<LIST_G_STATEMENT>|&\
|g' ${XMLDIR}/statement_tmp_1.xml > ${XMLDIR}/statement_tmp_2.xml
sed -e 's|\</LIST_G_STATEMENT>|&\
|g' ${XMLDIR}/statement_tmp_2.xml > ${XMLDIR}/statement_tmp_3.xml
Die Verwendung od -caller 3 Dateien führt zu folgender Ausgabe.
statement_tmp_1.xml (nein \nam Ende der Datei)
1314700 T A T E M E N T > < / L I S T _
1314720 G _ S T A T E M E N T > < / G _
1314740 S E T U P > < / L I S T _ G _ S
1314760 E T U P > < / A R X S G P O >
1314777
statement_tmp_2.xml (nein \nam Ende der Datei)
1314700 S T A T E M E N T > < / L I S T
1314720 _ G _ S T A T E M E N T > < / G
1314740 _ S E T U P > < / L I S T _ G _
1314760 S E T U P > < / A R X S G P O >
1315000
statement_tmp_3.xml ( \nam Ende der Datei - woher kommt sie?)
1314700 S T A T E M E N T > < / L I S T
1314720 _ G _ S T A T E M E N T > \n < /
1314740 G _ S E T U P > < / L I S T _ G
1314760 _ S E T U P > < / A R X S G P O
1315000 > \n
1315002
Ich verwende AIX 5.3
Grundsätzlich möchte ich, dass das Hinzufügen der zusätzlichen Elemente gestoppt \nwird oder dass eine Möglichkeit zum Entfernen gefunden wird.
\nin der rechten Seite ist nicht tragbar.
perlanderes Tool, das mit Binärdaten umgehen kann.
\<LF>ist die traditionelle und POSIX-Methode, um ein LF-Zeichen hinzuzufügen. \nwürde normalerweise ein nZeichen in etwas anderem als GNU ersetzen sed.
s|...|&\n|genauso gut hätten verwenden können ?