Bashでhttpリンクの最後の部分を取得する方法は?

Bashでhttpリンクの最後の部分を取得する方法は?

httpリンクがあります:

http://www.test.com/abc/def/efg/file.jar 

file.jarの最後の部分を変数に保存したいので、出力文字列は "file.jar"です。

健康状態:リンクの長さはさまざまです。例:

http://www.test.com/abc/def/file.jar.

私はこれを試しました:

awk -F'/' '{print $7}'

しかし、問題はURLの長さなので、すべてのURLの長さに対して機能するコマンドが必要です。

ベストアンサー1

うまくいきますawkが、穀物砲で鹿を狩るのと少し似ています。 URLがすでにNakedの場合は、bashそれをシェル変数に入れて、組み込みのパラメータ置換を使用して目的の操作を実行するのは非常に簡単です。

$ myurl='http://www.example.com/long/path/to/example/file.ext'
$ echo ${myurl##*/}
file.ext

どのように機能するかは、「* /」に一致するプレフィックスを削除することです##。この演算子が実行する操作は次のとおりです。

${haystack##needle} # removes any matching 'needle' from the
                    # beginning of the variable 'haystack'

おすすめ記事