-5

我有字符串包含一个路径

string="toto.titi.tata.2.abc.def"

我只想提取 2 第一个路径名。所以对于上面的例子,我想toto.titi从字符串中提取。

如何用字符串操作做到这一点?而不是 sed、awk、grep...


字符串操作示例:

tmp="${string#toto.titi.tata.*.}"
num1="${tmp%abc*}"
4

2 回答 2

0

不幸的是,除非您愿意使用 ,否则eval我认为您需要使用中间变量:

s=${string#*.}  # Remove the first component
echo ${s#*.}    # Remove the second

这给出了删除前两个组件的字符串的值。如果你想保留它们,你可以这样做:

# Remove one component at a time while there are more than two
while echo $string | grep -q '\..*\.'; do string=${string%.*}; done

但实际上,您最好使用sed或其他一些实用程序。

于 2013-07-30T13:40:11.837 回答
0

好的......split或者substring是答案。

string [] array = "toto.titi.tata.2.abc.def".split('.');
array[0]+array[1] ="toto.titi";

或者

"toto.titi.tata.2.abc.def".substring(0,10);
于 2013-07-30T13:41:31.293 回答