我正在使用scp命令将我的项目部署到生产服务器。作为部署过程的一部分,我将.htaccess文件上传到服务器。在本地,环境设置为DEVELOPMENT:
#Set environment
#[PRODUCTION, STAGING, TESTING, DEVELOPMENT]
SetEnv KOHANA_ENV 'DEVELOPMENT'
Run Code Online (Sandbox Code Playgroud)
但是,上传到服务器时需要将其更改为PRODUCTION. 有什么办法可以用 ssh 实现吗?
您可以使用sed命令和-i标志来就地编辑文件:
sed -i "s/SetEnv KOHANA_ENV 'DEVELOPMENT'/SetEnv KOHANA_ENV 'PRODUCTION'/g" /path/to/.htaccess
Run Code Online (Sandbox Code Playgroud)
通过ssh我看起来像这样:
ssh user@host "sed -i \"s/SetEnv KOHANA_ENV 'DEVELOPMENT'/SetEnv KOHANA_ENV 'PRODUCTION'/g\" /path/to/.htaccess"
Run Code Online (Sandbox Code Playgroud)
使用sed替换文件中的字符串非常简单:
sed -i 's/search_string/replace_string/g' file
Run Code Online (Sandbox Code Playgroud)
替换出现的所有search_string用replace_string的给予file。-i导致sed就地编辑文件,而不是写入标准输出 (stdout)。
如果您只想替换第一次出现,请使用此 sed 命令:
sed -i '0,/search_string/s/search_string/replace_string/' file
Run Code Online (Sandbox Code Playgroud)
有关sed使用的更多信息man sed。