我正在处理的html看起来很像这样
<a class="title may-blank" data-event-action="title" href="/r/gaming/comments/6t8dj0/we_can_play_singleplayer_games_off_the_internet/" tabindex="1" data-href-url="/r/gaming/comments/6t8dj0/we_can_play_singleplayer_games_off_the_internet/" data-inbound-url="/r/gaming/comments/6t8dj0/we_can_play_singleplayer_games_off_the_internet/?utm_content=title&utm_medium=hot&utm_source=reddit&utm_name=frontpage" rel="">We can play singleplayer games OFF THE INTERNET? Are they seriously that out of touch to advertise this?</a>
像这样的多行
我只想要href="http://xxxxxxxx"
和rel="">yyyyyyyyyy
中引号之间的内容,其余内容是不必要的。
我喜欢他们像这样输出,上面每个块的新行
<a href="http://xxxxxxxx" rel="">yyyyyyyyyy</a>
知道如何解决这个问题吗?
答案 0 :(得分:0)
所以这是一个10s的解决方案。它可能有点脆,但假设字符串在一个名为html.txt
的文件中应该可以工作 cat html.txt | sed 's/class.*href/href/' | sed 's/data-in.*rel=/rel=/'
Ĵ
答案 1 :(得分:0)
您的html示例将我引导至以下模式以获取所需的值:
<a class=\"(.*) href=\"/(.*)\" tabindex=(.*) rel=\"\">(.*)</a>
使用以下模式替换匹配项:
<a href="http://$2" rel="">$4</a>
你可以在regexe尝试一下,就像我预期的那样。