【发布时间】:2020-11-28 06:12:50
【问题描述】:
我想在 bash 中使用 shell 脚本解析下面的 html 文本字符串。
<pre style=\"font-family: helvetica, arial, sans-serif; white-space: pre-wrap; margin: 0;\">peter-2</pre>\n <pre style=\"font-family: helvetica, arial, sans-serif; white-space: pre-wrap; margin: 0;\">peter-1</pre>\n <pre style=\"font-family: helvetica, arial, sans-serif; white-space: pre-wrap; margin: 0;\">peter0</pre>\n <pre style=\"font-family: helvetica, arial, sans-serif; white-space: pre-wrap; margin: 0;\">peter1</pre>\n <pre style=\"font-family: helvetica, arial, sans-serif; white-space: pre-wrap; margin: 0;\">peter2</pre>\n <pre style=\"font-family: helvetica, arial, sans-serif; white-space: pre-wrap; margin: 0;\">peter3</pre>\n <pre style=\"font-family: helvetica, arial, sans-serif; white-space: pre-wrap; margin: 0;\">peter4</pre>\n
预期输出:
peter-2
peter-1
peter0
peter1
peter2
peter3
peter4
我希望 shell 命令基于 <pre 标签而不是基于位置来提取值。
【问题讨论】:
-
Don't Parse XML/HTML With Regex. 我建议使用 XML/HTML 解析器 (xmlstarlet, xmllint ...)。
-
我不想使用直接命令。我想使用正则表达式,这样我就不必安装任何命令了。
-
<pre\s.*?>(.*?)<\/pre>regex101.com/r/sfanee/1。你可以使用grep -po "<pre\s.*?>(.*?)<\/pre>"之类的命令 -
这能回答你的问题吗? Parse HTML using shell
-
@mjrezaee 你测试了 grep 吗?我运行它,它不起作用。 grep 命令失败。你运行的是什么操作系统?似乎在 regex101 上选择了正确的字段
标签: regex bash shell unix grep