sed '$s/$/yourText2/' list.txt > _list.txt_ && mv -- _list.txt_ list.txt
Se il tuo sed l'implementazione supporta -i opzione, puoi usare:
sed -i.bck '$s/$/yourText2/' list.txt
Con la seconda soluzione avrai anche un backup (con la prima dovrai farlo manualmente).
In alternativa:
ex -sc 's/$/yourText2/|w|q' list.txt
o
perl -i.bck -pe's/$/yourText2/ if eof' list.txt
Basta usare printf
invece, poiché non stampa la nuova riga per impostazione predefinita:
printf "final line" >> file
Prova
Creiamo un file e quindi aggiungiamo una riga in più senza una nuova riga finale. Nota che uso cat -vet
per vedere le nuove linee.
$ seq 2 > file
$ cat -vet file
1$
2$
$ printf "the end" >> file
$ cat -vet file
1$
2$
the end
Puoi usare il parametro -n di echo. In questo modo:
$ touch a.txt
$ echo -n "A" >> a.txt
$ echo -n "B" >> a.txt
$ echo -n "C" >> a.txt
$ cat a.txt
ABC
EDIT:Aha, avevi già un file contenente string e newline. Bene, lo lascerò comunque qui, potremmo essere utili a qualcuno.