2013年9月18日水曜日

シェルスクリプトで拡張子を簡単に取り除く構文

今まで知らなかったのでメモ。
こんな簡単に拡張子を取り除けるのか・・・・。
今まではわざわざbasenameとか使っていたのに。
for i in *.ts
do
    echo ${i%.ts}.mp4
done
とかやると、拡張子 .ts のファイルから .tsを取り除いて【${i%.ts}の部分】
その後.mp4を付与することが出来る。
これが何の役に立つかって、例で示したコードだと .tsファイルを.mp4へ
エンコードするときとかに役立つ。
今まで結構拡張子を変更したいとき煩雑なコードを書いてた気がするので、これは
かなり楽でスッキリしたコードになるなぁと。