如果存在下划线,我需要选择下划线。
string VIEW VXABC expected result VIEW ABC
string VIEW V_XABC expected result VIEW ABC
这是我的尝试,但结果让我不知道
echo "VIEW VXABC" |sed 's/VIEW V_?X/VIEW ABC/'
VIEW VXABC
答案 0 :(得分:3)
[me@home]$ echo VIEW V_XABC | sed -r 's/VIEW V_?X/VIEW /'
VIEW ABC
[me@home]$ echo VIEW VXABC | sed -r 's/VIEW V_?X/VIEW /'
VIEW ABC
请注意-r
选项。来自man page:
-r, --regexp-extended
use extended regular expressions in the script.
答案 1 :(得分:0)
尝试使用“扩展正则表达式”开关-E
:
echo "VIEW VXABC" | sed -E 's/VIEW V_?X/VIEW ABC/'
来自sed
的手册页:
-E,-r, - rengexp-extended
在脚本中使用扩展正则表达式(用于可移植性) POSIX -E)
答案 2 :(得分:0)
检查这是否有帮助。
sed -e 's/\(VIEW \)V[_X]\+\(ABC\)/\1 \2/'
testing
testing
VIEW VXABC
VIEW ABC
VIEW V_XABC
VIEW ABC