Windows 使用Sed提取完整网站的基本URL

Windows 使用Sed提取完整网站的基本URL,windows,sed,Windows,Sed,我正在查找包含以下内容的cat文件: http://www.site1.com/d23bdbd0fbc517d34, r N 4 https://www.site2.com/file/d23bdbd0fbc517d34, X http://www.site3.com/file/d23bdbd0fbc517d34 https://www.site4.edu/site/d23bdbd0fbc517d34 我需要使用sed来获得这种输出: www.site1.

我正在查找包含以下内容的cat文件:

    http://www.site1.com/d23bdbd0fbc517d34, r N 4
    https://www.site2.com/file/d23bdbd0fbc517d34, X
    http://www.site3.com/file/d23bdbd0fbc517d34
    https://www.site4.edu/site/d23bdbd0fbc517d34
我需要使用sed来获得这种输出:

    www.site1.com
    www.site2.com
    www.site3.com
    www.site4.edu
救命啊!我不能让它完全正常工作。从技术上讲,我在Windows上使用sed.exe,但它可能非常类似

$ cat file.txt
    http://www.site1.com/d23bdbd0fbc517d34, r N 4
    https://www.site2.com/file/d23bdbd0fbc517d34, X
    http://www.site3.com/file/d23bdbd0fbc517d34
    https://www.site4.edu/site/d23bdbd0fbc517d34
$ sed -r 's@.*//([^ /]+).*@\1@g' file.txt
www.site1.com
www.site2.com
www.site3.com
www.site4.edu
如果您没有
-r
开关:

sed 's@.*//\([^ /]\+\)[/ ].*@\1@g' file.txt
此外,在IIRC下,使用双引号而不是单引号

所以也许:

sed.exe "s@.*//\([^ /]\+\)[/ ].*@\1@g" file.txt
另一个变体是:

sed '\#.*www[.]\([^/]*\).*# s::\1:'
将显示

site1.com
site2.com
site3.com
site4.edu
测试

@ThinkPad-T420:~$ sed --version 
GNU sed version 4.2.1

谢谢废话这是可行的,但我注意到在URL末尾有这样的行:X Y Z。基本上没有“/”。谢谢,这主要是可行的,但输出仍然有问题,因为.com/something可以工作,但.com something仍然打印某物。这一行假设www在URL中,他可以单独添加:www.\1而不是\1。或将“(”移到www。