我有一个 HTML 文件,想提取<li>
和</li>
标签之间的文本。当然有上百万种方法可以做到这一点,但我认为更多地养成在简单的 shell 命令中这样做的习惯会很有用:
awk '/<li[^>]+><a[^>]+>([^>]+)<\/a>/m' cities.html
问题是,这会打印所有内容,而我只想在括号中打印匹配项([^>]+)
——要么 awk 不支持,要么我无能。后者似乎更有可能。如果您想将提供的正则表达式应用于文件并仅提取指定的匹配项,您将如何做?我已经知道六种其他方式,但我不想让awk
这一轮获胜;)
编辑:数据结构不完善,因此使用位置匹配 ( $1, $2, etc.
) 是不行的。