由于是 html,而且 html 应该用 html 解析器而不是 grep/sed/awk 来解析,所以你可以使用我的Xidel的模式匹配功能。
xidel yourfile.html -e '<a class="yt-uix-sessionlink yt-user-name " dir="ltr">{$link := @href, $user := substring-after($link, "www.youtube.com/user/"), $name:=text()}</a>*'
或者,如果您想要类似 CSV 的结果:
xidel yourfile.html -e '<a class="yt-uix-sessionlink yt-user-name " dir="ltr">{string-join((@href, substring-after(@href, "www.youtube.com/user/"), text()), ", ")}</a>*' --hide-variable-names
有点难过,你也想要艾瑞克琴弦,否则就这么简单
xidel /yourfile.html -e '<a href="{$link}" class="yt-uix-sessionlink yt-user-name ">{$name}</a>*'
(你应该可以使用xidel '<a href="{$link:=., $user := filter($link, www.youtube.com/user/(.*)\', 1)}" class="yt-uix-sessionlink yt-user-name " dir="ltr">{$name}</a>*'
,但似乎我还没有考虑过语法。只是 一个错误检查,它破坏了一切。)