当前位置: 技术问答>linux和unix
shell script sed截取网址 问题
来源: 互联网 发布时间:2016-08-30
本文导语: 问题。。截取网址 只用 sed http://linux.pacific.net.au/linux/packman/suse/10.2/repodata/repomd.xml // 这样的网址 要变成 下面一行的样子 我想要这样的: linux.pacific.net.au 目前的问题是 http:// 被截掉了。。但是 后面 "/" ...
问题。。截取网址 只用 sed
目前的问题是 http:// 被截掉了。。但是 后面 "/" 斜杠。。我始终截取不掉。。结果带了多余的 我不想要的东西
我写的代码 出来的是这样的效果:
网址文件:
我的语句。
这样出来之后虽然 再 cut 就可以解决问题。。但是一个 sed 应该也可以的吧
http://linux.pacific.net.au/linux/packman/suse/10.2/repodata/repomd.xml // 这样的网址 要变成 下面一行的样子
我想要这样的:
linux.pacific.net.au
目前的问题是 http:// 被截掉了。。但是 后面 "/" 斜杠。。我始终截取不掉。。结果带了多余的 我不想要的东西
我写的代码 出来的是这样的效果:
linux.pacific.net.au/linux/packman/suse/10.2/repodata/repomd.xml
网址文件:
1183245989.174 0.129 137.157.56.174 200 1277 GET http://linux.pacific.net.au/linux/packman/suse/10.2/repodata/repomd.xml"text/xml"
1183245989.254 0.059 137.157.56.174 200 1277 GET http://linux.pacific.net.au/linux/packman/suse/10.2/repodata/repomd.xml"text/xml"
1183245989.264 0.009 137.157.56.174 200 2259 GET http://linux.pacific.net.au/linux/packman/suse/10.2/repodata/repomd.xml.key "text/xml"
1183245989.324 0.049 137.157.56.174 200 1175 GET http://linux.pacific.net.au/linux/packman/suse/10.2/repodata/repomd.xml.asc "text/plain"
1183245990.463 1.018 137.157.56.174 200 2962288 GET http://linux.pacific.net.au/linux/packman/suse/10.2/repodata/filelists.xml.gz "text/xml"
1183245991.522 0.950 137.157.56.174 200 2265658 GET http://linux.pacific.net.au/linux/packman/suse/10.2/repodata/primary.xml.gz "text/xml"
1183245991.961 0.079 137.157.56.174 200 1277 GET http://linux.pacific.net.au/linux/packman/suse/10.2/repodata/repomd.xml"text/xml"
1183327698.250 2.568 137.157.56.3 200 57891 GET http://csc3-2004-crl.verisign.com/CSC3-2004.crl "application/pkix-crl"
1183328737.107 0.570 137.157.56.2 301 777 GET http://www.starnet.com/expiredialog/demo.php?product_name=xwin32&time_remain=1800&version=8.0.2216&locale=en_AU&w32iso639ulang=en&uuid={dfe167ce-f51c-4fd4-af80-25f31246f6bc} "text/html"
1183328737.908 0.781 137.157.56.2 200 5696 GET http://www.starnet.com/expiredialog/demo.php/xwin32/1800?version=8.0.2216&locale=en_AU&w32iso639ulang=en&uuid=%7bdfe167ce-f51c-4fd4-af80-25f31246f6bc%7d "text/html"
我的语句。
cat sample-set.log | sed -n "s/.* GET http://(.*)/.* .*/1/p"
这样出来之后虽然 再 cut 就可以解决问题。。但是一个 sed 应该也可以的吧
|
sed -n "s/.* GET http://([a-zA-Z.]{1,}).*/1/p" sample-set.log
原因是你的(.*) 把后面的所有都匹配了
|
若是匹配lz的网址文件,则为
sed 's;.+http://([^/]+).+;1;'
sed 's;.+http://([^/]+).+;1;'