我有問題:如何用一個命令編輯文件?
如何在不用編輯器打開的情況下編輯文件(例如php.ini)?我只能通過SSH/SOAP使用一個命令,所以我嘗試刪除該文件並將其寫入新文件,但速度很慢並且效果不佳。
例如我想編輯這個post_max_size = 8M
到post_max_size = 32M
與一個單一的命令。那可能嗎?
我有問題:如何用一個命令編輯文件?
如何在不用編輯器打開的情況下編輯文件(例如php.ini)?我只能通過SSH/SOAP使用一個命令,所以我嘗試刪除該文件並將其寫入新文件,但速度很慢並且效果不佳。
例如我想編輯這個post_max_size = 8M
到post_max_size = 32M
與一個單一的命令。那可能嗎?
流編輯 - 也被稱爲「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
使用perl一個襯墊...隨意更改下面的行當然要定製它,並使其更具選擇性。
perl -p -i -e 's/8M/32M/g' file_name
你絕對也可以使用GNU ed。
不過,我相信你應該使用一些版本控制系統(如git
)。然後,您可以對其進行編輯(在本地Linux筆記本電腦上)並進行適當傳輸(例如,本地筆記本電腦上的git commit
+ git push
,以及遠程主機上的git pull
)。
非常感謝!這對於劇本來說非常完美。 – CodeBrauer 2013-02-24 22:04:54
如果使用這些作爲ssh命令的一部分,一定要在引用/轉義/重定向/ etc周圍添加另一層引號/轉義符,這些引號/轉義符可以被遠程shell解釋(例如'ssh user @ computer「sed's/post_max_size = 8M/post_max_size = 32M /'infile> outfile「')。 – 2013-02-24 22:23:43