ファイルのダウンロードやPOSTリクエストの実験などで散々お世話になってるCurlコマンドのチームがだしているURLパーサーがありました
実際のところ
$ trurl --url https://curl.se --set host=example.com https://example.com/ $ trurl --set host=example.com --set scheme=ftp ftp://example.com/ $ trurl --url https://curl.se/we/are.html --redirect here.html https://curl.se/we/here.html $ trurl --url https://curl.se/we/../are.html --set port=8080 https://curl.se:8080/are.html $ trurl --url https://curl.se/we/are.html --get '{path}' /we/are.html $ trurl --url https://curl.se/we/are.html --get '{port}' 443 $ trurl https://example.com/hello.html --get '{scheme} {port} {path}' https 443 /hello.html $ trurl --url https://curl.se/hello --append path=you https://curl.se/hello/you
GitHub - curl/trurl: trurl is a command line tool for URL parsing and manipulation.