Cuando yo echo $something >> file.txt
, una nueva línea se agregará al archivo.
¿Qué sucede si deseo agregar sin una nueva línea?
bash
redirection
onemach
fuente
fuente
echo $something
, su comportamiento depende de laIFS
variable, y podría terminar con un carácter que desaparece. Puede intentar lo siguiente:var="hello world"; echo $var
(dos espacios entre hola y mundo) ovar="hello world"; IFS='l'; echo $var
ovar="-e hello \\n world"; echo $var
. Para resolver eso, ponga comillas dobles alrededor de la variable como esta:,echo "$var"
o useprintf
.Respuestas:
Para eso
echo -n
es eso .fuente
cat
? (por ejemplo, cuando tiene un archivo ensomething.txt
lugar de una variable$something
)printf
Es muy flexible y más portátil queecho
. Al igual que las implementaciones de C / Perl / etc., si no termina la cadena de formato con\n
ninguna línea nueva se imprime:fuente
Si está utilizando la salida del comando, puede usar xargs en combinación con echo
fuente
tr
Es otra alternativa.Si está utilizando
echo
como entrada, puede escapar de cuáltr -d '\n'
.Esta técnica también funciona al canalizar la salida de otros comandos (con una sola línea de salida). Además, si no sabe si los archivos tienen terminaciones de línea UNIX o DOS, puede usarlos
tr -d '\n\r'
.Aquí hay algunas pruebas que muestran que esto funciona.
Newline incluido:
Línea nueva UNIX:
Estilo DOS:
Probado con BSD
tr
y GNUtr
.fuente