Seu comando sed é
s/[m][M]//g
Isso removerá apenas a string mM
de sua entrada, porque você pediu para corresponder
- qualquer coisa no conjunto
m
, seguido por - qualquer coisa no conjunto
M
.
Você provavelmente quis escrever [Mm]
. Você pode obter o mesmo efeito adicionando a opção /i
ao comando s
, embora:
s/m//ig
Agora, isso removerá todos os maiúsculos e minúsculos m
s:
$ echo 6.5G 66.5m | sed -e s/m//ig
6.5G 66.5
Sua pergunta pergunta como remover palavras inteiras contendo esta carta. Para isso, precisamos combinar qualquer caractere não espacial antes ou depois. [^ ]
corresponde a um caractere não espacial e [^ ]*
corresponde a zero ou mais caracteres não espaciais, portanto, queremos
s/[^ ]*m[^ ]*//ig
Testando isso:
$ echo 6.5G 66.5m | sed -e 's/[^ ]*m[^ ]*//ig'
6.5G
e
$ echo Five Merry Women went fishing | sed -e 's/[^ ]*m[^ ]*//ig'
Five went fishing