1

如何获取所有实例,以及仅包含在单行或字符串中的正则表达式的实例?

例如,假设网页的输出(全部为单行)是:

<Table border=1 cellpadding=2><TR><TH><font size=2>LAN IP BLOCK</font></TH><TH><font size=2>CUST_NAME</font></TH> <TH><font size=2>ID
</TH></TR><TR><TD><font size=2>10.4.4.0 / 29</font></TD><TD><font size=2>Customer data</font></TD><TD><font size=2></font></TD></T
TD><font size=2>10.1.1.0 / 27</font></TD><TD><font size=2>Customer</font></TD><TD><font size=2></font></TD></TR></Table><p>

我想获取 IP CIDR 数据的每个实例。我知道我必须使用一个 IP 地址 RE(我相信我可以弄清楚/找到它),但是我如何获取每个实例并简单地删除所有其他文本?我想使用 grep/sed 等在命令行上执行此操作,但认为我需要使用 python。我知道我可以使用 Perl,但我必须安装它。

4

1 回答 1

2

grep选项-o-E您正在寻找的内容:

grep -oE "pattern1|pattern2|pattern3|pattern4|...|patternN" input_file

来自man grep

 -o, --only-matching
      Print only the matched (non-empty) parts of a matching line,
      with each such part on a separate output line.

 -E, --extended-regexp
      Interpret PATTERN as an extended regular expression
      (-E is specified by POSIX.)
于 2012-12-06T15:56:53.250 回答