J'exécute les 2 sedcommandes suivantes. Le premier ajoute des caractères de nouvelle ligne là où je les veux, le second ajoute également des caractères de nouvelle ligne là où je les veux, MAIS ajoute également un caractère supplémentaire à la fin du fichier là où il n'y en avait pas auparavant.
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'utilisation od -csur les 3 fichiers donne la sortie suivante.
statement_tmp_1.xml (non \nà la fin du fichier)
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 (non \nà la fin du fichier)
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à la fin du fichier - d'où vient-il?)
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
J'utilise AIX 5.3
Fondamentalement, je veux qu'il arrête d'ajouter le supplément \nou que je trouve un moyen de le supprimer.
\ndans le côté droit n'est pas portable.
perlun autre outil qui peut traiter des données binaires.
\<LF>c'est la manière traditionnelle et POSIX d'ajouter un caractère LF. \nremplacerait généralement un ncaractère dans tout sauf GNU sed.
s|...|&\n|aussi bien l' utiliser ?