有些时候会困惑为啥 使用"会写成\" 或者使用/的时候 会用\/来表示
其实这就是一个转义作用,因为 ",/,' ()可能有特殊的作用,所以我们要用\"来表示匹配双引号
同样在sed 命令中也是 字符串的时候也要注意转义
比如 a.txt中有 文字如下
url : 'index.php?a=index&b=hello'
ajax{
}
比如要将url : 'index.php?a=index&b=hello'替换成url : 'index/index/hello'
那么需要执行
sed -i "/s url[ ]:[ ]\'index.php?a=index&b=hello\'/url : 'index/index/index'/g"
[ ]表示空格
一些常用正则表达式的转义如下
$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或 ‘\r'。要匹配 $ 字符本身,请使用 \$。
( )标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。
*匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
+匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
.匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。
[ ]标记一个中括号表达式的开始。要匹配 [,请使用 \[。
?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
\ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n' 匹配字符 ‘n'。'\n' 匹配换行符。序列 ‘\\' 匹配 “\”,而 ‘\(' 则匹配 “(”。
^匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。
{ } 标记限定符表达式的开始。要匹配 {,请使用 \{。
| 指明两项之间的一个选择。要匹配 |,请使用 \|。