Sto eseguendo i seguenti 2 sed
comandi. Il primo aggiunge i caratteri di nuova riga dove li voglio, il secondo aggiunge anche i caratteri di nuova riga dove li voglio, MA ne aggiunge uno in più alla fine del file dove prima non ce n'era uno.
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
L'utilizzo od -c
su tutti e 3 i file fornisce il seguente output.
statement_tmp_1.xml (no \n
alla fine del file)
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 (no \n
alla fine del file)
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 ( \n
alla fine del file - da dove proviene?)
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
Sto eseguendo AIX 5.3
Fondamentalmente, o voglio che smetta di aggiungere il extra \n
, o trovare un modo per rimuoverlo.
\n
nella parte destra non è portatile.
perl
o altri strumenti in grado di gestire dati binari.
\<LF>
è il modo tradizionale e POSIX per aggiungere un carattere LF. \n
in genere sostituisce un n
personaggio in qualsiasi cosa tranne GNU sed
.
s|...|&\n|
altrettanto bene?