sed find replace - 转义特殊字符

时间:2014-07-06 10:22:04

标签: sed

我正在替换httpd.conf中的一行,面对使用sed时出现反斜杠的问题,

源代码行

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{True-Client-IP}i\"" combined

替换为

LogFormat "%h %l %u %t %D \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{True-Client-IP}i\"" combined

任何提示逃脱所有这些特殊字符

2 个答案:

答案 0 :(得分:1)

试试这个:

sed -e 's/%t \\"/%t %D \\"/'

答案 1 :(得分:0)

通过sed,

$ sed -i 's/^\(.*%t\)\(.*\)$/\1 %D\2/g' file
LogFormat "%h %l %u %t %D \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{True-Client-IP}i\"" combined

OR

$ sed -i 's/%t/%t %D/' file
LogFormat "%h %l %u %t %D \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{True-Client-IP}i\"" combined