Respostas:
Você pode anexar uma linha de texto a um arquivo usando o >>
operador:
echo "hello world" >> my_file.txt
ou no seu caso
echo "alias list='ls -cl --group-directories-first'" >> config.fish
Por favor, tome nota dos diferentes tipos de citações .
-i
atualizará o arquivo (caso contrário, apenas imprimirá o resultado em stdout), $
é uma expressão regular que corresponderá ao final do arquivo e a
anexará o seguinte texto ao nome do arquivo.
echo "hello world" >> my_file.txt
não cria uma nova última linha com HW
, mas a adiciona à string da última linha.
HW
@timo?
echo
isso que adiciona a quebra de linha (tornando-a uma linha em oposição a apenas um monte de caracteres). Você pode desativar a quebra de linha no final com -n
.
Existem muitos métodos de anexar arquivos sem abrir editores de texto, principalmente por meio de vários utilitários de processamento de texto disponíveis no 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
Adicionando a resposta de Stefano , você também pode usar cat
:
Usando um heredoc:
$ cat >> config.fish <<'EOF'
> alias list='ls -cl --group-directories-first'
> EOF
<<'EOF'
significa "tome o seguinte como entrada, até chegar a uma linha que é justa EOF
". As aspas significam receber a entrada literalmente.
Ou introduzindo a linha no stdin:
$ cat >> config.fish
Em seguida, cole ou digite a linha, pressione Enterpara ir para uma nova linha e pressione Ctrl + D para marcar o final.
>
, o arquivo truncará, não acrescentará. Para um comando mais seguro, você pode usar o sed:sed -i '$a hello world' filename