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
[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、--正規表現拡張
スクリプトで拡張正規表現を使用する (移植性のために POSIX -E を使用)