rohaniのブログ

ゆるっと自然言語処理奴。ときどき工作系バイト。

ファイル名から拡張子やディレクトリのみ抽出する

ShellScriptでよく使うパターンマッチ。

  • ${変数#パターン} 先頭から最短一致した部分を取り除く
  • ${変数##パターン} 先頭から最長一致した部分を取り除く
  • ${変数%パターン} 末尾から最短一致した部分を取り除く
  • ${変数%%パターン} 末尾から最短一致した部分を取り除く
path="/dirname/filename.txt"
ft=${path##*/}  # ファイル名+拡張子
f=${ft%.*}  #ファイル名
t=${ft##*.}  #拡張子
d=${path%/*}  #ディレクトリ名

参考

パス文字列からファイル名などを抜き出す - Qiita

毎回お世話になっていました。