文字列にパスが含まれています
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
これにより、最初の 2 つのコンポーネントが削除された文字列の値が得られます。それらを保持したい場合は、次のようにします。
# 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);