2013-02-24 4 views
2

У меня есть вопрос:Как отредактировать файл с помощью одной команды?

Как редактировать файл (например, php.ini), не открывая его с помощью редактора? Я могу использовать только одну команду через SSH/SOAP, поэтому я попытался удалить файл и записать его новый, но это медленный и не работает.

например, я хочу отредактировать это post_max_size = 8M по post_max_size = 32M с помощью одной команды. Это возможно?

ответ

7

Stream edit - также известный как «sed» - ваш друг.

sed 's/post_max_size = 8M/post_max_size = 32M/' infile > outfile 

sed -i 's/post_max_size = 8M/post_max_size = 32M/' inplace_file 
+0

Большое спасибо! Это идеально подходит для скрипта. – CodeBrauer

+1

Если вы используете это как часть команды ssh, обязательно добавьте еще один слой кавычек/экранов вокруг кавычек/escapes/redirects/etc, которые вы хотите интерпретировать удаленной оболочкой (например, 'ssh user @ computer" sed 's/post_max_size = 8M/post_max_size = 32M/'infile> outfile "'). –

0

использование Perl один вкладыш ... не стесняйтесь, чтобы изменить строку ниже, конечно, настроить его и сделать его более избирательным.

perl -p -i -e 's/8M/32M/g' file_name 
1

Вы определенно могли бы также использовать GNU ed.

Однако я считаю, что вы должны использовать некоторую систему контроля версий (например, git). Затем вы можете отредактировать его (на локальном ноутбуке Linux) и передать его соответствующим образом (например, git commit + git push на локальном ноутбуке и git pull на удаленном хосте).

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