2015-10-02 2 views
1

У меня есть код, где я использую Grep для поиска чисел в некотором HTML-коде.Поймайте как положительные, так и отрицательные числа, используя Grep

Ниже то, что я до сих пор:

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

Я бы думать вдоль линий:

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

Это позволит необязательный знак (положительный или отрицательный), а также требует, по крайней мере, одной цифры в вашем номере: + означает, что один или несколько, * означает ноль или больше.

0

Используйте квантор для - знака:

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

Просто проверил это, и он отображает только положительное число. –

+1

@AaronPerry да я понял после. См. Править –