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