O padrão [a-z]*
corresponde a zero ou mais caracteres no intervalo a
a z
(os caracteres reais dependem da localidade atual). Não há zero tais caracteres no início da string 123 abc
(ou seja, o padrão corresponde) e também quatro deles no início de this is a line
.
Se você precisar de pelo menos uma correspondência, use [a-z][a-z]*
ou ative as expressões regulares estendidas com sed -E
e use [a-z]+
.
Para visualizar onde o padrão corresponde, adicione parênteses em torno de cada correspondência:
$ sed 's/\([a-z]*\)/()/' file
()123 abc
(this) is a line
Ou com uma correspondência repetida:
$ sed 's/\([a-z]*\)/()/g' file
()1()2()3() (abc)
(this) (is) (a) (line)
Compare esse último resultado com
$ sed -E 's/([a-z]+)/()/g' file
123 (abc)
(this) (is) (a) (line)