bashでfileの拡張子を取得するには

bashでファイルの拡張子を取得した時のメモです。元ネタはExtract filename and extension in Bashです。というか、そのままです。

例えば、ファイル名が”update.txt”の場合は次のようなことで拡張子と拡張子以外を分けて取得できます:

~% filename=update.txt                                   
~% filename=$(basename $filename)                        
~% echo $filename                                        
update.txt
~% extension=${filename##*.}                             
~% echo $extension                                       
txt
~% filename=${filename%.*}                               
~% echo $filename                                        
update

さらに詳細は 3.5.3 Shell Parameter Expansion を参照しましょう。