- 追加された行はこの色です。
- 削除された行はこの色です。
* 文字列操作 [#o209cc74]
* 文字列から部分的に文字列を取り出す [#pad8f0c8]
** 文字列から部分的に文字列を取り出す(bashのパラメータ展開を使って) [#t7f02ddb]
bashのパラメータ展開を使う。
*** 先頭の文字列を取り出す [#b797f469]
filename="2010-06-01.jpg"
year=${filename%%-*}
- 変数filenameについて、右から"-*"に最長一致でマッチする文字列が削除され、"2010"が返る。
-${filename%-*}の場合、最短一致になるので、"2010-06"が返る。
** 前提 [#xa2ba952]
ymd=2010-06-01
*** 末尾の文字列を取り出す [#gbeac7a7]
filename="file.tar.gz"
ext=${filename##*.}
- 変数filenameについて、左から"*."に最長一致でマッチする文字列が削除され、"gz"が返る。
-${filename#*.}の場合、最短一致になるので、"tar.gz"が返る。
** 先頭の文字列を取り出す [#b797f469]
変数に対して%を指定して、続くワイルドカードにマッチする部分を文字列先頭から探して、取り除く。
*** 最長一致 [#z7bc3fa3]
y=${ymd%%-*}
「2010」
** 大文字から小文字にする(小文字から大文字にする) [#v9844121]
echo "hello" | tr "a-z" "A-Z"
*** 最短一致 [#t9f4ff5d]
ym=${ymd%-*}
「2010-06」
** 末尾の文字列を取り出す [#gbeac7a7]
変数に対して#を指定して、続くワイルドカードにマッチする部分を文字列末尾から探して、取り除く。
*** 最長一致 [#p61ef5a1]
d=${ymd##*-}
「01」
*** 最短一致 [#if216a6f]
md=${ymd#*-}
「06-01」