O 1
no número 10
corresponde a [^049]
, pelo que é eliminado.
Recentemente, comecei a aprender sed
. Eu fiz
$seq 10 | sed '/[^049]/d'
Eu estava esperando
4
9
10
como saída. Mas eu tenho
4
9
Onde estou cometendo um erro ao entender este regex?
Se você realmente deseja mostrar linhas contendo "0", "4" ou "9", veja como:
seq 10 | sed -n '/[049]/p'
O -n
instrui sed
para não imprimir nenhuma linha. O comando p
instrui sed
a imprimir linhas correspondentes ao /regex/
Como alternativa, você sempre pode usar grep
: -)
seq 10 | grep -E "[049]"
Tags sed regular-expression