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