3

I need to strip an underscore optionally if it exists.

string VIEW VXABC expected result VIEW ABC
string VIEW V_XABC expected result VIEW ABC

This is my try but results are eluding me

echo "VIEW VXABC" |sed 's/VIEW V_?X/VIEW ABC/'
VIEW VXABC
4

3 に答える 3

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オプションに注意してください。マニュアルページから:

-r, --regexp-extended
    use extended regular expressions in the script.
于 2012-05-10T12:35:02.423 に答える
1

これが役立つかどうかを確認してください。

 sed -e 's/\(VIEW \)V[_X]\+\(ABC\)/\1 \2/'
testing
testing
VIEW VXABC
VIEW  ABC
VIEW V_XABC
VIEW  ABC
于 2012-05-10T12:36:53.657 に答える
0

「拡張正規表現」スイッチを使用してみてください-E:

echo "VIEW VXABC" | sed -E 's/VIEW V_?X/VIEW ABC/'

のマニュアルページからsed

-E、-r、--正規表現拡張

スクリプトで拡張正規表現を使用する (移植性のために POSIX -E を使用)

于 2012-05-10T04:28:43.413 に答える