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