Shell scripting e regex: Qual deles é melhor para combinar números, [[: digit:]] ou [0-9]?

4

Como o título sugere, qual é a melhor para corresponder números, [[:digit:]] ou [0-9] ?

Estou usando o shell bash

Obrigado :)

    
por Likso 28.06.2010 / 17:01

2 respostas

5

O único motivo pelo qual o [[:digit:]] deve ser usado é para oferecer suporte a localidades que usam dígitos diferentes de 0-9 . Por exemplo algarismos arábicos-indianos: ٠١٢٣٤٥٦٧٨٩ (Unicode U + 0660 a U + 0669). Caso contrário, para os numerais hindu-arábicos 0123456789 , [0-9] funciona igualmente bem como [[:digit:]] .

    
por 29.06.2010 / 05:58
4
# time grep -oE '[[:digit:]]' /etc/services
...
real    0m0.029s
user    0m0.017s
sys     0m0.013s


# time grep -oE '[0-9]' /etc/services
...
real    0m0.029s
user    0m0.016s
sys     0m0.012s

Eu provavelmente poderia escrever um roteiro rápido para medi-los, e aposto que eu acho que as médias são idênticas, mas certamente dá a idéia.

    
por 28.06.2010 / 17:21