Já o primeiro deve funcionar. Este símbolo não tem um significado especial, embora seja um caractere não-ascii. Não é necessário \
, não seja oportunista, se funcionar sem \
, faça isso funcionando dessa maneira! É como se você tentasse
sed 's/ő//g'
Em tais casos, os motivos mais prováveis são:
- Problema de codificação. Verifique, em qual codificação está o arquivo (
file -szL file.txt
), e em qual codificação você está usando (echo $LANG
). É porque o "°
" pode ter uma sequência de bytes diferente nas diferentes codificações. Melhor se ambos estiverem em utf-8. Extensão: O Ubuntu 16 é bom utf-8 amigável por padrão, no máximo no caso de sistema atualizado apenas nos EUA, muito antigo, continuamente, posso imaginar esse problema de codificação. É muito mais realista que o seu arquivo de texto não esteja no utf-8. O comandofile
dirá para você. - Você pode filtrar por um caractere similar , mas não pelo caractere exato. Existem milhares de caracteres exibíveis em um sistema não muito antigo, utf-8, muitos deles são hieróglifos especiais como esse, qualquer um deles é muito parecido. A solução é fácil também neste caso:
cat
do arquivo e copie e cole o glifo em sua linha de comando.
Se você os seguiu, 95% encontrou e corrigiu o problema neste ponto. O restante é para os 10% dos casos.
Se nada disso funcionar, você pode depurar as coisas no nível de bytes mais profundo. No seu caso eu faria isso:
- Primeiramente, eu começaria este comando
sed
, mas daria a/dev/zero
como fonte:sed 's/°//g' </dev/zero >/dev/null
. Isso resultará que osed
funcionará em um loop infinito, trabalhando em um fluxo longo infinito de zero bytes, e não sairá no local. Então, você pode depurá-lo. - Suspenda sua execução com um ctrl / z.
- Verifique seu pid com
pidof sed
. Você obtém um número inteiro máximo de 5 dígitos. - Com um
hexcat /proc/12345/cmdline
, você poderá ver os dados em nível de byte dessa linha de comando sed. - Você pode verificar a codificação em nível de bytes do "
°
" fazendo o mesmohexcat file.txt
. - Os dois devem corresponder. Se não, há algum mal na imagem, tente (2) ou faça uma nova pergunta.
Muitas distribuições Linux simplesmente removeram hexcat
, uma de suas ferramentas mais úteis, de seus distribuidores, porque acham que ninguém usou isso. Mas há alguma outra ferramenta, até onde eu me lembro, talvez xxd
seja uma delas. Se você não consegue fazer hexa lixeiras com nada, faça uma nova pergunta.