比如这个地址 https://www.google.com/search?q=nginx 是从浏览器复制的,想要在终端里 ping ,还要自己选取一段复制,或者粘贴到终端,再删掉部分,如果 url 很长。。。
我现在是写了个小脚本,放到环境变量 bashrc/zshrc 里面,类似 alias ,然后直接 ping http://... 大家有更好的方法吗
ping() {
host=$1
if [[ $host == http* ]] || [[ $host == https* ]];then
host=$(echo $host | awk -F '/' '{print $3}' | awk -F ':' '{print $1}')
fi
/sbin/ping $host
}
1
dogking2 2022-09-26 15:32:55 +08:00
python 中 urllib.parse.urlparse()可以解析
|
2
arch9999 2022-09-26 15:35:41 +08:00 2
|
3
LLaMA2 2022-09-26 15:39:21 +08:00
你的网址会遵守 scheme://host:port/path?query 这个格式,那么先://分割,一定取最后一段,接着:分割,一定去最前一段,没了,网址得到了,前提是你原始的网址是经过 url_encode 过的,要不 query 参数中出现了类似:// :等字符会瞎
|
4
IceBay 2022-09-26 15:47:07 +08:00
|
5
jifengg 2022-09-26 16:18:02 +08:00
感觉你自己的已经可以了,现在域名很少有 username 和 password 的,所以通用性几乎 100%了吧
|
6
fisherwei 2022-09-26 16:20:03 +08:00 1
自从 chrome 带头开始 copy 自动附加 schema:// 之后,这个事就变得很烦人
|
7
matzoh 2022-09-26 16:28:17 +08:00
|
8
FrankAdler OP @arch9999 这肯定没有直接 cmd+c 复制然后 cmd+v 去 ping 快啊,本质上我的出发点就是想不要这样复制😂
|
9
FrankAdler OP |
10
FrankAdler OP @IceBay 飞浏览器环境用不上这个吧
|
11
FrankAdler OP @matzoh 很强,不过我在用 raycast
|
12
LindsayZhou 2022-09-27 07:59:03 +08:00
无聊写一个:
``` echo "https://www.baidu.com" | python -c 'import os;from urllib.parse import urlparse;os.system("ping "+urlparse(input()).hostname)' ``` |