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が述べたように、basename
GNU coreutilsにあり、ほとんどのプラットフォームでも利用できます。
$ basename "http://www.foo.bar/file.ext"
file.ext