J'exécute les 2 sed
commandes 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 -c
sur 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 \n
ou que je trouve un moyen de le supprimer.
\n
dans le côté droit n'est pas portable.
perl
un autre outil qui peut traiter des données binaires.
\<LF>
c'est la manière traditionnelle et POSIX d'ajouter un caractère LF. \n
remplacerait généralement un n
caractère dans tout sauf GNU sed
.
s|...|&\n|
aussi bien l' utiliser ?