来自字符位置的bash变量的子串

时间:2013-07-17 12:06:18

标签: bash variables position character substring

简单的问题,但我的sed命令不起作用:(

echo "some_class" | sed -e 's/.+\_\(.+\)/\1/'

我希望发生在_字符之后的所有事情。请问,如何修复我的代码?谢谢。

在这种情况下," class"是正确的答案。

2 个答案:

答案 0 :(得分:3)

您不需要sed;您可以使用参数扩展来返回从第一个_开始的子字符串:

foo=some_class
echo "${foo#*_}"

答案 1 :(得分:3)

此sed行适用于您的示例:

sed 's/.*_//'

以你的例子:

kent$  echo "some_class"|sed 's/.*_//'
class