${#変数}
で変数の文字列の長さ
${変数#パターン}
変数について、最初の部分とパターンがマッチしたら、最も短く一致する部分を取り除いた残りの部分を返す。
${変数##パターン}
変数について、最初の部分とパターンがマッチしたら、最も長く一致する部分を取り除いた残りの部分を返す。
${変数%パターン}
変数について、最後の部分とパターンがマッチしたら、最も短く一致する部分を取り除いた残りの部分を返す。
${変数%%パターン}
変数について、最後の部分とパターンがマッチしたら、最も長く一致する部分を取り除いた残りの部分を返す。
例)
STR=/a/b/c/d/e/hoge.10.txt
$ echo ${STR##/*/}
→hoge.10.txt
一番長い/~/は/a/b/c/d/e/
$ echo ${STR#/*/}
→/b/c/d/e/hoge.10.txt
一番短い/~/は/a/
$ echo ${STR%%.*}
→/a/b/c/d/e/hoge
一番長い.~は.10.txt
$ echo ${STR%.*}
→/a/b/c/d/e/hoge.10
一番短い.~は.txt
拡張子を変える場合は、
FILE=test.txt
$ echo ${FILE%.*}.dat
スポンサーサイト