【发布时间】:2012-05-10 04:22:09
【问题描述】:
如果存在,我需要去掉下划线。
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
【问题讨论】:
如果存在,我需要去掉下划线。
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 选项。来自man page:
-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)
【讨论】: