Bashを使用してURLからデフォルトのファイル名を抽出する

Bashを使用してURLからデフォルトのファイル名を抽出する
url=http://www.foo.bar/file.ext; echo ${url##/*}

このコードは印刷することを期待していましたが、file.ext完全なURLが印刷されました。なぜ?ファイル名を抽出するには?

ベストアンサー1

単語が切り捨てられる文字列と一致する必要があるからです。次のようにする必要があります。

$ url="http://www.foo.bar/file.ext"; echo "${url##*/}"
file.ext

ありがとうございます。あなたは私を正しい方向に導きました。また、@frank-zdarskyが述べたように、basenameGNU coreutilsにあり、ほとんどのプラットフォームでも利用できます。

$ basename "http://www.foo.bar/file.ext"
file.ext

おすすめ記事