2015-04-30 3 views
2

Я хочу использовать sed для добавления строки текста в самый конец файла. В этом случае я работаю над OS X, и я хочу добавить строку в файлы/etc/sudoers. Я хочу, чтобы моя строка была последней строкой в ​​файле в отдельной строке. Есть идеи?Команда Sed для добавления строки текста в самый конец файла

Пример:

text 
text 
text 
<my string> 

Благодаря.

ответ

3

Если вы можете сделать это без sed, было бы достаточно легко сделать echo <line> >> /etc/sudoers (хотя будьте осторожны, чтобы иметь действующую линию!).

Если вы хотите сделать это с помощью sed, вы можете сделать sed -i -e '$a<line>' /etc/sudoers, чтобы перейти к последней строке, а затем добавить свой текст.

+0

эхо команда не работает для/и т.д./файл sudoers он говорит, что разрешение является denied ... Также я попробовал команду sed, и он дал мне команду sed: 1: $ atty_tickets: команда a ожидает \ после чего следует текст " – Technic1an

+1

@ Technic1an, вам нужно использовать' sudo'. – user3439894

+0

@ user3439894 Я все еще не работает – Technic1an

2

Рассмотрите возможность использования echo и перенаправление вывода:

sudo sh -c "echo 'my string' >> /etc/sudoers" 

.

+0

Команда echo не работает для файла/etc/sudoers, он говорит, что разрешение отклонено – Technic1an

+0

@ Technic1an: Я сделал редактирование, чтобы ввести команду 'sudo' для запуска этого в качестве администратора , Чтобы перенаправить работу с помощью 'sudo', нам нужно запустить оболочку и предоставить ей мини-shell-скрипт с помощью опции' -c'. – ctt

+1

@ctt, я не видел, что вы опубликовали, и теперь, когда я удалил свой ответ, так как ваш гораздо безопаснее! :) +1 – user3439894

2

Вы можете использовать awk

awk '1; END {print "text to add"}' file > tmp && mv tmp file 

Это добавит text to add в качестве новой строки в конце файла file

Смежные вопросы