使用sed,为什么这匹配:
sed 's/test$/pass/' <<< "test"
Run Code Online (Sandbox Code Playgroud)
......什么时候不这样?
sed 's/test[$]/pass/' <<< "test"
Run Code Online (Sandbox Code Playgroud)
因为[…]在正则表达式中表示一个字符类,所以[$]匹配单个文字$字符.
换句话说,您无法匹配字符类中的锚点.因此,如果您想要匹配一个a或一个b字符或字符串的结尾,请使用替换:
sed 's/test([ab]|$)/pass/' <<< "test"
Run Code Online (Sandbox Code Playgroud)