のような文字列ファイル パスが与えられた場合/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}
。