在广泛搜索和阅读之后,我设法完成了一半的工作。
这是字符串:
<td class='bold vmiddle'> Owner CIDR: </td><td><span class='jtruncate-text'><a href="http://3.abcdef.com/ip-3/encoded/czovL215aXAubXMvdmlldy9pcF9hZGRyZXNzZXMvNDIuMjI0LjAuMA%3D%3D">42.224.0.0</a>/12</span></td>
我需要提取42.224.0.0
和/12
以制作42.224.0.0/12
。
现在我通过使用
设法获得42.224.0.0
sed -n 's/^.*<a.href="[^"]*">\([^<]*\).*/\1/p'
但我不知道如何提取/12
。
有人可以帮忙吗?
答案 0 :(得分:1)
你非常接近:
sed -n 's/^.*<a.href="[^"]*">\([^<]*\)<\/a>\([^<]*\).*/\1\2/p' file
所需要的只是第二个捕获组:第一个匹配<\/a>
的结束标记后<a>
,第二个捕获组\([^<]*\)
然后捕获所有内容但不包括结束</span>
标签
替换字符串中的\1\2
简单地连接两个捕获组匹配的内容,产生42.224.0.0/12
样本输入。
答案 1 :(得分:0)
你可以尝试下面的awk解决方案 -
vipin@kali:~$ awk -F'>|<' '{print $(NF-6),$(NF-4)}' OFS="" kk.txt
42.224.0.0/12
需要使用多个多个(>,<)
字段分隔符。