sed '$s/$/yourText2/' list.txt > _list.txt_ && mv -- _list.txt_ list.txt
Si votre sed l'implémentation prend en charge le -i option, vous pouvez utiliser :
sed -i.bck '$s/$/yourText2/' list.txt
Avec la deuxième solution, vous aurez également une sauvegarde (avec la première, vous devrez le faire manuellement).
Sinon :
ex -sc 's/$/yourText2/|w|q' list.txt
ou
perl -i.bck -pe's/$/yourText2/ if eof' list.txt
Utilisez simplement printf
à la place, puisqu'il n'imprime pas la nouvelle ligne par défaut :
printf "final line" >> file
Tester
Créons un fichier, puis ajoutons une ligne supplémentaire sans nouvelle ligne à la fin. Remarque j'utilise cat -vet
pour voir les nouvelles lignes.
$ seq 2 > file
$ cat -vet file
1$
2$
$ printf "the end" >> file
$ cat -vet file
1$
2$
the end
Vous pouvez utiliser le paramètre -n de echo. Comme ceci :
$ touch a.txt
$ echo -n "A" >> a.txt
$ echo -n "B" >> a.txt
$ echo -n "C" >> a.txt
$ cat a.txt
ABC
EDIT :Aha, vous aviez déjà un fichier contenant une chaîne et une nouvelle ligne. Eh bien, je vais laisser ça ici de toute façon, cela pourrait-il être utile à quelqu'un.