Як додати рядки до кінця файлу в Linux


120

Я хочу додати наступні 2 рядки ...

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

до кінця файлу vncservers, знайдені в каталозі .... / etc / sysconfig /

Як я можу це зробити?

Дякую


2
Ви можете використовувати viабо emacs. Чи знаєте ви, як ними користуватися? Я не намагаюся бути саркастичним.

Відповіді:


232

Найпростіший спосіб перенаправити вихід ехо за допомогою >>

echo 'VNCSERVERS="1:root"' >> /etc/sysconfig/configfile
echo 'VNCSERVERARGS[1]="-geometry 1600x1200"' >> /etc/sysconfig/configfile

3
Як тільки з цікавості ви додали текст до файлу, не створюючи нового рядка?
Мартін Хансен

11
Це залежить від останнього доданого рядка, а не від вашої поточної команди. Коли ви робите файл $ echo "foobar" >>, новий рядок вже є. Якщо ви зробите файл $ echo -n "foobar" >>, ви не додасте новий рядок до кінця рядка, тому ви будете писати в тому ж рядку.
user897079

9
Це не працює, коли в середовищі sudo пише в системний файл. Ви не можете судо >>. Інакше це прекрасно працює.
Денніс

4
Можна використовувати команду "sed" таким чином: ---------- sed -i "$ a деякий текст" somefile.txt --------- -i: редагувати файли на місці, $ знайти кінець файлу, a: додати
Lunf

9
@Dennis Це пов’язано з способом розбору командного рядка. 'sudo abc >> def' буде 'sudo abc', а потім '>> def' вихід. Для того, щоб надіслати весь біт 'abc >> def', потрібно зробити щось подібне: sudo sh -c "echo" VNCSERVERS = \ "1: root \" '>> / etc / sysconfig / configfile "(зауважте, що внутрішні подвійні лапки повинні бути уникнуті)
Urhixidur
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.