如果存在,我需要选择性地去除下划线。
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
[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
选项。从手册页:
-r, --regexp-extended
use extended regular expressions in the script.
检查这是否有帮助。
sed -e 's/\(VIEW \)V[_X]\+\(ABC\)/\1 \2/'
testing
testing
VIEW VXABC
VIEW ABC
VIEW V_XABC
VIEW ABC
尝试使用“扩展正则表达式”开关-E
:
echo "VIEW VXABC" | sed -E 's/VIEW V_?X/VIEW ABC/'
从手册页sed
:
-E, -r, --regexp-扩展
在脚本中使用扩展的正则表达式(为了便于移植,使用 POSIX -E)