我有字符串包含一个路径
string="toto.titi.tata.2.abc.def"
我只想提取 2 第一个路径名。所以对于上面的例子,我想toto.titi
从字符串中提取。
如何用字符串操作做到这一点?而不是 sed、awk、grep...
字符串操作示例:
tmp="${string#toto.titi.tata.*.}"
num1="${tmp%abc*}"
不幸的是,除非您愿意使用 ,否则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
或其他一些实用程序。
好的......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);