【发布时间】:2013-08-26 11:08:08
【问题描述】:
这应该很容易,但我就是无法摆脱它:
我需要使用 unix 命令行替换 .php 文件中的一段文本。
使用:sudo sed -i '' 's/STRING/REPLACEMENT/g' /file.php(-i 后面的引号是必需的,因为它在 Mac Os X 上运行)
字符串:['password'] = ""; 需要替换为:['password'] = "$PASS";
$PASS 是一个变量,所以它会被填充。
我想到了类似的东西:
sudo sed -i '' 's/[\'password\'] = ""\;/[\'password\'] = "$PASS"\;/g' /file.php
但由于我是 UNIX 新手,我不知道要逃避什么...
应该改变什么?谢谢!
【问题讨论】:
-
接受的答案实际上不适用于任意字符串——事实上,恶意密码可以结束正在运行的 sed 命令(替换操作)并启动另一个任意命令,对该用户的选择您的配置文件!请考虑 awk 答案,或mywiki.wooledge.org/BashFAQ/021
标签: shell unix replace sed escaping