bashのパラメータ展開いろいろ
知らなかったり忘れたりすると、ついbasenameやcutやsedを使ってしまうので、メモ。
これに$'\pattern'も合わせたら、それなりのことは出来そう。
${parameter##word}
を使った前方最長一致除去
パスからディレクトリ部分を除去
${filename##*/}
※最長一致を使うのは、/foo/bar/baz.txt みたいなケースを想定して。
${parameter%word}
を使った後方最短一致除去
ファイル名から拡張子を除去
${filename%.*}
※最短一致を使うのは、foo.bar.baz.txt みたいなケースを想定して。
${pattern:offset:length}
yyyy/mm/ddからyyyyを取得
${today:0:4}
※offsetは0始まり。また、最後まで取得する場合は、:length
は不要。
${parameter//pattern/string}
を使った文字列全置換
yyyy/mm/ddから"/"を除去
${today//\/}
※除去する場合には、/string
は不要。