Comando para agregar línea a un archivo de texto sin abrir un editor


147

Suponiendo que tengo una línea que quiero agregar a un archivo sin abrir un editor.

¿Cómo podría agregar esta línea?

alias list='ls -cl --group-directories-first'

a este archivo

config.fish

Respuestas:


237

Puede agregar una línea de texto a un archivo utilizando el >>operador:

echo "hello world" >> my_file.txt

o en tu caso

echo "alias list='ls -cl --group-directories-first'" >> config.fish

Tenga en cuenta los diferentes tipos de citas .


25
Yo uso echo yo mismo, pero tenga cuidado, si solo especifica uno >, el archivo se truncará, no se agregará. para un comando más seguro puede usar sed:sed -i '$a hello world' filename
invierta el

12
explicación: -iactualizará el archivo (de lo contrario, solo imprimirá el resultado en stdout), $es una expresión regular que coincidirá con el final del archivo y aagrega el siguiente texto al nombre del archivo.
invertir el

echo "hello world" >> my_file.txtno crea una nueva última línea con HW, pero la agrega a la cadena de la última línea.
Timo

¿Qué es HW@timo?
7wp

Quizás "Hello World" @ 7wp :) Es lo echoque agrega el salto de línea (haciéndolo una línea en lugar de solo un montón de caracteres). Puede desactivar el salto de línea al final con -n.
Stefano Palazzo

3

Hay muchos métodos para agregar archivos sin abrir editores de texto, particularmente a través de múltiples utilidades de procesamiento de texto disponibles en Ubuntu.

  • tee -a config.fish <<< "alias list='ls -cl --group-directories-first'"
  • awk 'BEGIN{ printf "alias list=\x27ls -cl --group-directories-first\x27\n" >> "config.fish" }'
  • sed -i '$a alias list='"'"'ls -cl --group-directories-first'"'" config.fish

1

Agregando a la respuesta de Stefano , también puedes usar cat:

  • Usando un heredoc:

    $ cat >> config.fish <<'EOF'
    > alias list='ls -cl --group-directories-first'
    > EOF

    <<'EOF'significa "tome lo siguiente como entrada, hasta llegar a una línea que sea justa EOF". Las citas significan tomar la entrada literalmente.

  • O ingresando la línea en stdin:

    $ cat >> config.fish

    Luego pegue o escriba la línea, presione Enterpara ir a una nueva línea, luego presione Ctrl + D para marcar el final.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.