1

すべてのインスタンスを取得し、単一の行または文字列に含まれる正規表現のインスタンスのみを取得するにはどうすればよいですか?

たとえば、Webページからの出力(すべて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>

IPCIDRデータのすべてのインスタンスを取得したいと思います。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 に答える