使用sed提取CentOS镜像域名
我正试图从中提取CentOS域名列表 将前缀“http://”和“ftp://”截断为第一个“/”字符,只生成 yum.phx.singlehop.com使用sed提取CentOS镜像域名,sed,centos6,Sed,Centos6,我正试图从中提取CentOS域名列表 将前缀“http://”和“ftp://”截断为第一个“/”字符,只生成 yum.phx.singlehop.com mirror.nyi.net bay.uchicago.edu centos.mirror.constant.com mirror.teklinks.com centos.mirror.netriplex.com centos.someimage.com mirror.sanctuaryhost.com mirrors.cat.pdx.edu
mirror.nyi.net
bay.uchicago.edu
centos.mirror.constant.com
mirror.teklinks.com
centos.mirror.netriplex.com
centos.someimage.com
mirror.sanctuaryhost.com
mirrors.cat.pdx.edu
mirrors.tummy.com
我在stackoverflow中搜索sed方法,但仍有问题 我试着用sed做这个
curl”http://mirrorlist.centos.org/?release=6.4&arch=x86_64&repo=os“| sed'/:\//\//,//\//p'
但看起来它什么也没做。你能给我一些建议吗?给你:
curl”http://mirrorlist.centos.org/?release=6.4&arch=x86_64&repo=os“| sed-e's?*://?”-e's?//.*”
您的sed
完全错误:
是一个范围。它选择多行,从一行匹配的/x/,/y/
到一行匹配的/x/
/y/
命令打印所选范围p
sed
会回显输入,p
命令会产生重复的行(所有行打印两次)
在我的修复中:
- 我使用了
而不是s???
,因为这样我不需要转义模式中的所有s//
,所以这样可读性更好/
- 我使用了两个带有
标志的表达式:-e
将所有内容匹配到s?*:/?
,并将其替换为零:/
匹配从s?/.**
到结尾的所有内容,并将其替换为零/
- 这两个表达式按给定的顺序执行
- 在现代版本的
中,可以省略sed
,并用-e
分隔这两个表达式代码>。我坚持使用
,因为它更便于携带-e