[英]Sed replace strings starts with special characters
我正在嘗試用 sed 替換字符串; php_value[date.timezone] = Europe/Riga
; php_value[date.timezone] = Europe/Riga
我試過這樣的事情:
sed -i 's/; php_value[date.timezone] = Europe/\Riga/; php_value[date.timezone] = America/\Sao_Paulo/g' file
Output:sed:-e 表達式 #1,字符 47:命令后的額外字符
您可以使用
sed -i 's/; php_value\[date\.timezone] = Europe\/Riga/; php_value[date.timezone] = America\/Sao_Paulo/g' file
請參閱在線演示。
注意:
[
和.
是特殊的正則表達式元字符,需要轉義以匹配文字[
和.
,因此, \[
和\.
在正則表達式部分/
在這里是正則表達式分隔符 char,也應該轉義。 要轉義/
,請使用\/
。 好吧,如果你使用另一個正則表達式分隔符字符,你將不需要 escaping /
,例如sed -i 's,; php_value\[date\.timezone] = Europe/Riga,; php_value[date.timezone] = America/Sao_Paulo,g' file
在此處將逗號視為正則表達式分隔符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.