Bash のパス文字列からファイルサフィックスとパス部分を削除するにはどうすればよいですか? 質問する

Bash のパス文字列からファイルサフィックスとパス部分を削除するにはどうすればよいですか? 質問する

のような文字列ファイル パスが与えられた場合/foo/fizzbuzz.bar、bash を使用してその文字列の部分だけを抽出するにはどうすればよいでしょうかfizzbuzz?

ベストアンサー1

Bash で # 演算子と % 演算子を使用してこれを行う方法は次のとおりです。

$ x="/foo/fizzbuzz.bar"
$ y=${x%.bar}
$ echo ${y##*/}
fizzbuzz

${x%.bar}${x%.*}ドットの後のすべてを削除したり、${x%%.*}最初のドットの後のすべてを削除したりすることもできます。

例:

$ x="/foo/fizzbuzz.bar.quux"
$ y=${x%.*}
$ echo $y
/foo/fizzbuzz.bar
$ y=${x%%.*}
$ echo $y
/foo/fizzbuzz

ドキュメントは以下にあります。Bash マニュアル${parameter%word}セクションに一致する末尾の部分を探します${parameter%%word}

おすすめ記事