hil*_*cma 4 linux grep regex parsing string
我有一个网址列表,如:
hxxp://url.com/subpage.html
hxxp://www.url2.com/index.php
hxxp://subdomain.url3.com/somepage.php
...
Run Code Online (Sandbox Code Playgroud)
如何使用 grep 仅匹配域名?
所有网址在域后都有一个 / 。并且有很多 tld,不知道有多少,列表相当大。
为了使用非贪婪的正则表达式,grep
您需要使用该-P
选项并且该-o
选项仅输出匹配的部分。您还需要使用环视,以便匹配的部分不包含在输出中。
grep -Po '.*?//\K.*?(?=/)'
Run Code Online (Sandbox Code Playgroud)
例子:
$ echo 'hxxp://subdomain.url3.com/somepage.php' | grep -Po '.*?//\K.*?(?=/)'
subdomain.url3.com
Run Code Online (Sandbox Code Playgroud)