2013-02-24 31 views
2

我有問題:如何用一個命令編輯文件?

如何在不用編輯器打開的情況下編輯文件(例如php.ini)?我只能通過SSH/SOAP使用一個命令,所以我嘗試刪除該文件並將其寫入新文件,但速度很慢並且效果不佳。

例如我想編輯這個post_max_size = 8Mpost_max_size = 32M與一個單一的命令。那可能嗎?

回答

7

流編輯 - 也被稱爲「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 2013-02-24 22:04:54

+1

如果使用這些作爲ssh命令的一部分,一定要在引用/轉義/重定向/ etc周圍添加另一層引號/轉義符,這些引號/轉義符可以被遠程shell解釋(例如'ssh user @ computer「sed's/post_max_size = 8M/post_max_size = 32M /'infile> outfile「')。 – 2013-02-24 22:23:43

0

使用perl一個襯墊...隨意更改下面的行當然要定製它,並使其更具選擇性。

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

你絕對也可以使用GNU ed

不過,我相信你應該使用一些版本控制系統(如git)。然後,您可以對其進行編輯(在本地Linux筆記本電腦上)並進行適當傳輸(例如,本地筆記本電腦上的git commit + git push,以及遠程主機上的git pull)。

相關問題