If the file is guarenteed to not have a terminating newline (or if
the addition of an empty line at the bottom of the output is not
going
to make any difference ) just use an 'echo' to add the newline after
a 'cat' command;
{ cat filename; echo ; } | sed 's/old/new/g'
Otherwise you can check if it is newline or not using a 'tail' to
get the last character, and then only if it is not there add one;
{ cat filename
if [ "$( tail -c 1 filename |tr -c '\12' x )" =3D "x" ]
then echo
fi
} | sed 's/old/new/g'
Et je sais que =E7a a d=E9j=E0 fonctionn=E9 sur mon vieux mac. Toutefois si=
je
traite un fichier sans newline sur mon nouveau mac en faisant:
{ cat filename; echo ; }>tmp
Tout ce qui est ajout=E9 est un simple point (A0 en hexad=E9cimal) et non
un newline. Est-ce que =E7a a arr=EAt=E9 de fonctionn=E9 ou j'ai arr=EAt=E9=
de
comprendre?
Par ailleurs, s'il y a une nouvelle fa=E7on d'ajouter un newline =E0 la
fin de la derni=E8re ligne, quelle serait la bonne fa=E7on de tester s'il
y en a d=E9j=E0 une?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
blanc
Archidemon wrote:
Et je sais que ça a déjà fonctionné sur mon vieux mac. Toutefois si je traite un fichier sans newline sur mon nouveau mac en faisant:
{ cat filename; echo ; }>tmp
Tout ce qui est ajouté est un simple point (A0 en hexadécimal) et non un newline. Est-ce que ça a arrêté de fonctionné ou j'ai arrêté de comprendre?
Par ailleurs, s'il y a une nouvelle façon d'ajouter un newline à la fin de la dernière ligne, quelle serait la bonne façon de tester s'il y en a déjà une?
Merci!
Ter repetita non placent !
Autrement dit répéter trois fois le même message ne plait pas (pas beaucoup) !
Pour répondre à ta question, sinon, ça marche très bien chez moi.
Maintenant es-tu sûr d'avoir mis un ; après echo ? car si c'est un point que tu as mis, cela expliquerait que tu le retrouves dans ton fichier tmp (quoi que...) Es-tu sûr aussi que c'est A0 en hexa que tu as. Ne serais ce pas plutôt 0A qui est le code ascii du newline en hexa ? Chez moi, avec la commande :
od -h filename
j'obtiens OA suivi de 00 (lequel doit être juste l'indication de fin de fichier fournie par la commande od)
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Archidemon <mikeomike@gmail.com> wrote:
Et je sais que ça a déjà fonctionné sur mon vieux mac. Toutefois si je
traite un fichier sans newline sur mon nouveau mac en faisant:
{ cat filename; echo ; }>tmp
Tout ce qui est ajouté est un simple point (A0 en hexadécimal) et non
un newline. Est-ce que ça a arrêté de fonctionné ou j'ai arrêté de
comprendre?
Par ailleurs, s'il y a une nouvelle façon d'ajouter un newline à la
fin de la dernière ligne, quelle serait la bonne façon de tester s'il
y en a déjà une?
Merci!
Ter repetita non placent !
Autrement dit répéter trois fois le même message ne plait pas (pas
beaucoup) !
Pour répondre à ta question, sinon, ça marche très bien chez moi.
Maintenant es-tu sûr d'avoir mis un ; après echo ? car si c'est un point
que tu as mis, cela expliquerait que tu le retrouves dans ton fichier
tmp (quoi que...)
Es-tu sûr aussi que c'est A0 en hexa que tu as. Ne serais ce pas plutôt
0A qui est le code ascii du newline en hexa ?
Chez moi, avec la commande :
od -h filename
j'obtiens OA suivi de 00 (lequel doit être juste l'indication de fin de
fichier fournie par la commande od)
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
Et je sais que ça a déjà fonctionné sur mon vieux mac. Toutefois si je traite un fichier sans newline sur mon nouveau mac en faisant:
{ cat filename; echo ; }>tmp
Tout ce qui est ajouté est un simple point (A0 en hexadécimal) et non un newline. Est-ce que ça a arrêté de fonctionné ou j'ai arrêté de comprendre?
Par ailleurs, s'il y a une nouvelle façon d'ajouter un newline à la fin de la dernière ligne, quelle serait la bonne façon de tester s'il y en a déjà une?
Merci!
Ter repetita non placent !
Autrement dit répéter trois fois le même message ne plait pas (pas beaucoup) !
Pour répondre à ta question, sinon, ça marche très bien chez moi.
Maintenant es-tu sûr d'avoir mis un ; après echo ? car si c'est un point que tu as mis, cela expliquerait que tu le retrouves dans ton fichier tmp (quoi que...) Es-tu sûr aussi que c'est A0 en hexa que tu as. Ne serais ce pas plutôt 0A qui est le code ascii du newline en hexa ? Chez moi, avec la commande :
od -h filename
j'obtiens OA suivi de 00 (lequel doit être juste l'indication de fin de fichier fournie par la commande od)
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
blanc
Archidemon wrote:
Et je sais que ça a déjà fonctionné sur mon vieux mac. Toutefois si je traite un fichier sans newline sur mon nouveau mac en faisant:
Maintenant aussi, reste à savoir ce qu'est ton nouveau mac ? et surtout quel version de système utilises-tu ? car perso je suis sous Tiger. Si tu es sous Léo, c'est peut-être différent...
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Archidemon <mikeomike@gmail.com> wrote:
Et je sais que ça a déjà fonctionné sur mon vieux mac. Toutefois si je
traite un fichier sans newline sur mon nouveau mac en faisant:
Maintenant aussi, reste à savoir ce qu'est ton nouveau mac ? et surtout
quel version de système utilises-tu ? car perso je suis sous Tiger. Si
tu es sous Léo, c'est peut-être différent...
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
Et je sais que ça a déjà fonctionné sur mon vieux mac. Toutefois si je traite un fichier sans newline sur mon nouveau mac en faisant:
Maintenant aussi, reste à savoir ce qu'est ton nouveau mac ? et surtout quel version de système utilises-tu ? car perso je suis sous Tiger. Si tu es sous Léo, c'est peut-être différent...
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
blanc
Archidemon wrote:
Et je sais que ça a déjà fonctionné sur mon vieux mac. Toutefois si je traite un fichier sans newline sur mon nouveau mac en faisant:
Maintenant aussi, reste à savoir ce qu'est ton nouveau mac ? et surtout quelle version de système utilises-tu ? car perso je suis sous Tiger. Si tu es sous Léo, c'est peut-être différent...
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Archidemon <mikeomike@gmail.com> wrote:
Et je sais que ça a déjà fonctionné sur mon vieux mac. Toutefois si je
traite un fichier sans newline sur mon nouveau mac en faisant:
Maintenant aussi, reste à savoir ce qu'est ton nouveau mac ? et surtout
quelle version de système utilises-tu ? car perso je suis sous Tiger. Si
tu es sous Léo, c'est peut-être différent...
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
Et je sais que ça a déjà fonctionné sur mon vieux mac. Toutefois si je traite un fichier sans newline sur mon nouveau mac en faisant:
Maintenant aussi, reste à savoir ce qu'est ton nouveau mac ? et surtout quelle version de système utilises-tu ? car perso je suis sous Tiger. Si tu es sous Léo, c'est peut-être différent...
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Archidemon
JiPaul a écrit :
Archidemon wrote:
Et je sais que ça a déjà fonctionné sur mon vieux mac. Toutefois si je traite un fichier sans newline sur mon nouveau mac en faisant:
{ cat filename; echo ; }>tmp
Tout ce qui est ajouté est un simple point (A0 en hexadécimal) et non un newline. Est-ce que ça a arrêté de fonctionné ou j'ai arrêté de comprendre?
Par ailleurs, s'il y a une nouvelle façon d'ajouter un newline à la fin de la dernière ligne, quelle serait la bonne façon de tester s'il y en a déjà une?
Merci!
Ter repetita non placent !
Autrement dit répéter trois fois le même message ne plait pas (pas beaucoup) !
Je ne sais pas comment ça c'est produit. Désolé!
Pour répondre à ta question, sinon, ça marche très bien chez moi.
Maintenant es-tu sûr d'avoir mis un ; après echo ? car si c'est un point que tu as mis, cela expliquerait que tu le retrouves dans ton fichier tmp (quoi que...) Es-tu sûr aussi que c'est A0 en hexa que tu as. Ne serais ce pas plutôt 0A qui est le code ascii du newline en hexa ? Chez moi, avec la commande :
od -h filename
j'obtiens OA suivi de 00 (lequel doit être juste l'indication de fin de fichier fournie par la commande od)
En fin de compte tu as raison!
JiPaul a écrit :
Archidemon <mikeomike@gmail.com> wrote:
Et je sais que ça a déjà fonctionné sur mon vieux mac. Toutefois si je
traite un fichier sans newline sur mon nouveau mac en faisant:
{ cat filename; echo ; }>tmp
Tout ce qui est ajouté est un simple point (A0 en hexadécimal) et non
un newline. Est-ce que ça a arrêté de fonctionné ou j'ai arrêté de
comprendre?
Par ailleurs, s'il y a une nouvelle façon d'ajouter un newline à la
fin de la dernière ligne, quelle serait la bonne façon de tester s'il
y en a déjà une?
Merci!
Ter repetita non placent !
Autrement dit répéter trois fois le même message ne plait pas (pas
beaucoup) !
Je ne sais pas comment ça c'est produit. Désolé!
Pour répondre à ta question, sinon, ça marche très bien chez moi.
Maintenant es-tu sûr d'avoir mis un ; après echo ? car si c'est un point
que tu as mis, cela expliquerait que tu le retrouves dans ton fichier
tmp (quoi que...)
Es-tu sûr aussi que c'est A0 en hexa que tu as. Ne serais ce pas plutôt
0A qui est le code ascii du newline en hexa ?
Chez moi, avec la commande :
od -h filename
j'obtiens OA suivi de 00 (lequel doit être juste l'indication de fin de
fichier fournie par la commande od)
Et je sais que ça a déjà fonctionné sur mon vieux mac. Toutefois si je traite un fichier sans newline sur mon nouveau mac en faisant:
{ cat filename; echo ; }>tmp
Tout ce qui est ajouté est un simple point (A0 en hexadécimal) et non un newline. Est-ce que ça a arrêté de fonctionné ou j'ai arrêté de comprendre?
Par ailleurs, s'il y a une nouvelle façon d'ajouter un newline à la fin de la dernière ligne, quelle serait la bonne façon de tester s'il y en a déjà une?
Merci!
Ter repetita non placent !
Autrement dit répéter trois fois le même message ne plait pas (pas beaucoup) !
Je ne sais pas comment ça c'est produit. Désolé!
Pour répondre à ta question, sinon, ça marche très bien chez moi.
Maintenant es-tu sûr d'avoir mis un ; après echo ? car si c'est un point que tu as mis, cela expliquerait que tu le retrouves dans ton fichier tmp (quoi que...) Es-tu sûr aussi que c'est A0 en hexa que tu as. Ne serais ce pas plutôt 0A qui est le code ascii du newline en hexa ? Chez moi, avec la commande :
od -h filename
j'obtiens OA suivi de 00 (lequel doit être juste l'indication de fin de fichier fournie par la commande od)