Respuestas:
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 .
-i
actualizará el archivo (de lo contrario, solo imprimirá el resultado en stdout), $
es una expresión regular que coincidirá con el final del archivo y a
agrega el siguiente texto al nombre del archivo.
echo "hello world" >> my_file.txt
no crea una nueva última línea con HW
, pero la agrega a la cadena de la última línea.
HW
@timo?
echo
que 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
.
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
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.
>
, el archivo se truncará, no se agregará. para un comando más seguro puede usar sed:sed -i '$a hello world' filename