シェルで拡張子の置換え
よく忘れるのでメモっておく。
あんまり実用的な例ではないが、aaa.html,bbb.htmlが存在した場合、aaa,bbbというディレクトリを作りたかった。
for file in `ls *.html`;do mkdir ${file%.html};done
- ${変数#パターン}
変数の内容について、最初の部分とパターンがマッチしたら、最も短く一致する部分を取り除いた残りの部分を返す。
- ${変数##パターン}
変数の内容について、最初の部分とパターンがマッチしたら、最も長く一致する部分を取り除いた残りの部分を返す。
- ${変数%パターン}
変数の内容について、最後の部分とパターンがマッチしたら、最も短く一致する部分を取り除いた残りの部分を返す。
- ${変数%%パターン}
変数の内容について、最後の部分とパターンがマッチしたら、最も長く一致する部分を取り除いた残りの部分を返す。
Windowsユーザーに教えるLinuxの常識(8):bashで始めるシェルスクリプト基礎の基礎 (1/2) - @IT