Como adicionar linhas ao final do arquivo no Linux

120

Quero adicionar as 2 linhas a seguir ...

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1600x1200"

ao final do arquivo vncservers encontrado no diretório .... / etc / sysconfig /

Como posso fazer isso?

obrigado

Antony West
fonte
2
Você pode usar viou emacs. Você sabe como usar isso? Não estou tentando ser sarcástico.

Respostas:

232

A maneira mais fácil de redirecionar a saída do eco por >>

echo 'VNCSERVERS="1:root"' >> /etc/sysconfig/configfile
echo 'VNCSERVERARGS[1]="-geometry 1600x1200"' >> /etc/sysconfig/configfile
user897079
fonte
3
Só por curiosidade, como você acrescentaria texto a um arquivo sem criar uma nova linha?
Martin Hansen
11
Depende da última linha adicionada, não do seu comando atual. Quando você faz o arquivo $ echo "foobar" >>, a nova linha já está lá. Se você fizer $ echo -n "foobar" >> file, você não acrescentará a nova linha ao final da linha, então escreverá na mesma linha.
user897079
9
Isso não funciona quando em um ambiente sudo gravando em um arquivo de sistema. Você não pode fazer sudo >>. Caso contrário, funciona bem.
Dennis
4
Use o comando "sed" como segue: ---------- sed -i "$ a algum texto" somefile.txt --------- -i: edite arquivos no local, $ localizar o final do arquivo, a: append
Lunf
9
@Dennis Isso se deve à maneira como a linha de comando é analisada. 'sudo abc >> def' irá 'sudo abc' e então '>> def' a saída. Para sudo todo o bit 'abc >> def', você deve fazer algo assim: sudo sh -c "echo 'VNCSERVERS = \" 1: root \ "' >> / etc / sysconfig / configfile" (observe que as aspas duplas internas devem ser escapadas)
Urhixidur