-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

これにより、最初の 2 つのコンポーネントが削除された文字列の値が得られます。それらを保持したい場合は、次のようにします。

# 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 に答える