SED命令用文件替换字符串

时间:2014-11-19 09:24:23

标签: sed

我正在尝试使用sed替换文本文件中包含特殊字符的字符串。 sed命令变得太复杂了。如果有人可以帮我解决确切的命令。

Code - 
sed -i 's;PS1='${HOSTNAME} [$ORACLE_SID] $PWD> ';PS1="${COL_YELLOW}'CUSTOMER TEST:${HOSTNAME}:[$ORACLE_SID]:$PWD> '${COL_END}";g'

我试图逃避下面的特殊字符,但它不起作用。

sed -i 's;PS1=\'\${HOSTNAME} [\$ORACLE_SID] \$PWD> \';PS1="\${COL_YELLOW}\'CUSTOMER TEST:\${HOSTNAME}:[\$ORACLE_SID]:\$PWD> \'\${COL_END}";g' .bash_profile_backup

1 个答案:

答案 0 :(得分:0)

这可能适合你(GNU sed):

sed -i 's|PS1='\''${HOSTNAME} \[$ORACLE_SID\] $PWD> '\''|PS1="${COL_YELLOW}'\''CUSTOMER TEST:${HOSTNAME}:[$ORACLE_SID]:$PWD> '\''${COL_END}"|g' file

N.B。 '需要在模式和替换中引用,而[]只需要在模式中进行转义。