linux bash awk echo cat

linux - Bash: agrega una cadena al final del archivo sin salto de línea



awk echo (3)

Puedes usar el parámetro -n de echo. Me gusta esto:

$ touch a.txt $ echo -n "A" >> a.txt $ echo -n "B" >> a.txt $ echo -n "C" >> a.txt $ cat a.txt ABC

EDIT: Aha, ya tenías un archivo que contenía cadena y nueva línea. Bueno, voy a dejar esto aquí de todos modos, podríamos ser útiles para alguien.

¿Cómo puedo agregar una cadena al final del archivo sin salto de línea?

por ejemplo, si estoy usando >> se agregará al final del archivo con salto de línea:

cat list.txt yourText1 root@host-37:/# echo yourText2 >> list.txt root@host-37:/# cat list.txt yourText1 yourText2

Me gustaría agregar suText2 justo después de suText1

root@host-37:/# cat list.txt yourText1yourText2


Simplemente use printf lugar, ya que no imprime la nueva línea como predeterminada:

printf "final line" >> file

Prueba

Vamos a crear un archivo y luego agregar una línea adicional sin una nueva línea final. Nota utilizo cat -vet para ver las nuevas líneas.

$ seq 2 > file $ cat -vet file 1$ 2$ $ printf "the end" >> file $ cat -vet file 1$ 2$ the end


sed ''$s/$/yourText2/'' list.txt > _list.txt_ && mv -- _list.txt_ list.txt

Si su implementación sed admite la opción -i , podría usar:

sed -i.bck ''$s/$/yourText2/'' list.txt

Con la segunda solución también tendrá una copia de seguridad (con la primera tendrá que hacerlo manualmente).

Alternativamente:

ex -sc ''s/$/yourText2/|w|q'' list.txt

o

perl -i.bck -pe''s/$/yourText2/ if eof'' list.txt