【发布时间】:2014-09-06 19:31:32
【问题描述】:
拥有
DEST_PATH='/var/www/clones'
site='xyz.com'
sed -i -e "s/\$log_path\s=\s'\(.*\)'/\$log_path = '$DEST_PATH\/$site\/logs'/" $DEST_PATH/$site/configuration.php
问题是第一个变量中的正斜杠,因为这是正在处理的内容并返回错误:
sed -i -e "s/\$log_path\s=\s'\(.*\)'/\$log_path = '/var/www/clones\/xyz.com\/logs'/" configuration.php
什么时候应该运行:
sed -i -e "s/\$log_path\s=\s'\(.*\)'/\$log_path = '\/var\/www\/clones\/xyz.com\/logs'/" configuration.php
所以我知道,我可以替换 $DEST_PATH 中的所有 /,然后再次运行 sed,但我想知道您是否知道或可以想到任何其他/更好的方法。理想情况下,如果可能,可能让sed 自动转义'$DEST_PATH/$site/logs'。
【问题讨论】:
标签: linux bash variables sed escaping