echo de texto con una nueva línea en bash

35

Me gustaría agregar texto a un archivo. Entonces escribí en bash

echo text >> file.conf

Sin embargo, no deja una nueva línea. Entonces solo puedo hacer esto una vez. ¿Cómo agrego una nueva línea?

John Albietz
fuente
55
¿Qué quieres decir? ¿Una nueva línea extra ? echoagrega una nueva línea por defecto.
Pausado hasta nuevo aviso.
44
echopor defecto deja una nueva línea, ¿la necesita para dejar dos? Además, si está ejecutando esto en un sistema Linux y abriendo el archivo en un sistema Windows o Mac, asegúrese de que su editor sea compatible con las líneas nuevas * nix, o aparecerá todo en una línea, aunque esté en varias líneas.
Darth Android

Respuestas:

79

Opción 1:

% echo -e "text\n" >> file.conf

opcion 2:

% ( echo text ; echo "" ) >> file.conf

opción 3:

% echo text >> file.conf
% echo ""  >> file.conf
akira
fuente
77
Puede soltar el argumento vacío ( echo ""=> echo). Además, la opción 4:, echo $'text\n'que es útil para cualquier comando, ya que $''bash lo interpreta.
7

Creo que la respuesta correcta debería ser que tu comando

echo text >> file.conf

agrega una línea extra, pero después del nuevo texto, no antes.

Supongo que desea agregar una línea adicional antes de ese texto, probablemente porque su archivo inicial no termina en una nueva línea. En ese caso podrías usar

echo -e "\ ntext" >> archivo.conf

en cambio, como la -eopción le permite usar el nuevo \ncarácter de línea .

N.Gutierrez
fuente
3

Solo para agregar a la respuesta de akira

Opcion 4:

use ctrl-v ctrl-mcombinaciones de teclas dos veces para insertar dos caracteres de control de nueva línea en el terminal. Ctrl-v le permite insertar caracteres de control en el terminal. Si lo desea, puede usar la tecla Intro o Retorno en lugar de ctrol-m. Inserta lo mismo.

Esto termina pareciendo echo text^M^M >> file.conf

James T
fuente
2
Si necesita avances de línea en lugar de retornos de carro (linux / unix), intente echo "text^J^J" >> file.confEscribir ^ J en realidad podría insertar una nueva línea literal, solo asegúrese de poner las comillas y estará bien.
Darth Android