Jak dodać wiersze na końcu pliku w systemie Linux

120

Chcę dodać następujące 2 wiersze ...

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

na końcu pliku vncservers znalezionego w katalogu .... / etc / sysconfig /

W jaki sposób mogę to zrobić?

Dzięki

Antony West
źródło
2
Możesz użyć vilub emacs. Czy wiesz, jak ich używać? Nie próbuję być sarkastyczny.

Odpowiedzi:

232

Najłatwiejszy sposób na przekierowanie wyjścia echa przez >>

echo 'VNCSERVERS="1:root"' >> /etc/sysconfig/configfile
echo 'VNCSERVERARGS[1]="-geometry 1600x1200"' >> /etc/sysconfig/configfile
user897079
źródło
3
Tak z ciekawości, jak dołączyłbyś tekst do pliku bez tworzenia nowego wiersza?
Martin Hansen
11
Zależy to od ostatnio dodanej linii, a nie od bieżącego polecenia. Kiedy robisz plik $ echo "foobar" >>, nowa linia już tam jest. Jeśli zrobisz $ echo -n "foobar" >> plik, nie dodasz nowej linii na koniec linii, więc napiszesz w tej samej linii.
user897079
9
To nie działa, gdy w środowisku sudo zapisujesz do pliku systemowego. Nie możesz sudo >>. W przeciwnym razie działa dobrze.
Dennis
4
Użyj polecenia "sed" w następujący sposób: ---------- sed -i "$ a jakiś tekst" somefile.txt --------- -i: edytuj pliki w miejscu, $ znajdź koniec pliku, a: append
Lunf
9
@Dennis Dzieje się tak ze względu na sposób przetwarzania wiersza poleceń. „sudo abc >> def” wyświetli „sudo abc”, a następnie „>> def”. Aby wykonać sudo cały bit 'abc >> def', musisz zrobić coś takiego: sudo sh -c "echo 'VNCSERVERS = \" 1: root \ "' >> / etc / sysconfig / configfile" (zwróć uwagę, że wewnętrzne cudzysłowy muszą zostać
usunięte