環境変数から部分文字列を抽出する

環境変数から部分文字列を抽出する

bashまたはzshスクリプトでunix.stackexchange.comURLが環境変数にある場合は、URL(たとえば)からホストをどのように抽出できますか?http://unix.stackexchange.com/questions/ask

ベストアンサー1

すべてのPOSIX互換シェルで利用可能なパラメータ拡張を使用できます。

$ export FOO=http://unix.stackexchange.com/questions/ask
$ tmp="${FOO#*//}" # remove http://
$ echo "${tmp%%/*}" # remove everything after the first /
unix.stackexchange.com

より安定しているがより醜いアプローチは、実際のURLパーサーを使用することです。例は次のとおりですpython

$ python3 -c 'import sys; from urllib.parse import urlparse; print(urlparse(sys.argv[1]).netloc)' "$FOO"
unix.stackexchange.com

おすすめ記事