使用Grep捕获正数和负数

时间:2015-10-02 11:54:31

标签: regex linux unix ubuntu grep

我有代码,我使用Grep在某些HTML代码中搜索数字。

以下是我到目前为止:

grep -ioP '&deg;C">[0-9]*</a></p>' ${site}_ec_wk1

而不是正数和负数都有两个条目,例如:

grep -ioP '&deg;C">[0-9]*</a></p>' ${site}_ec_wk1
grep -ioP '&deg;C">-[0-9]*</a></p>' ${site}_ec_wk1

如何只使用一行来捕获负数和正数?

2 个答案:

答案 0 :(得分:2)

我会按照以下思路思考:

grep -ioP '&deg;C">[-+]?[0-9]+</a></p>' ${site}_ec_wk1
                   ^^^^^     ^
                    add    change

这将允许一个可选的标记(正为负)并且还需要至少一位数字:+表示一个或多个,*表示零或更多。

答案 1 :(得分:0)

使用-符号的量词:

grep -ioP '&deg;C">-?\d*</a></p>' ${site}_ec_wk1