A resposta a esta pergunta depende de qual dos caracteres de espaço não-violador você está encontrando.
Abaixo estão exemplos de como substituir cada um dos caracteres de espaço não quebráveis mencionados no título das perguntas e adicionalmente a versão UTF-8 ( C2 A0
) que o OP está realmente perguntando de acordo com a saída pastebin.
Todos os exemplos usam printf
para gerar a saída, pois é mais portável do que echo
. Os caracteres de espaço são substituídos por X
para tornar a saída mais clara.
Exemplos
html
printf '&#nbsp;\n' | sed 's/ /X/g'
printf ' \n' | sed 's/&160;/X/g'
printf ' \n' | sed 's/&[aA]0;/X/g'
octal 240 = decimal 160 = hexadecimal A0
printf '\xA0\n' | sed 's/\xA0/X/g'
Ou com tr
:
printf '\xA0\n' | tr '0' 'X'
U + 00A0
printf '\x00\xA0\n' | sed 's/\x00\xA0/X/g'
UTF-8
printf '\xC2\xA0\n' | sed 's/\xC2\xA0/X/g'
Resultado
A saída em todos os casos acima é:
X
Resposta
Agora, para sua pergunta, você tem dados assim:
printf '@ IN SOA @ rname.invalid. (' | od -x
Saída:
0000000 c240 c2a0 c2a0 c2a0 c2a0 c2a0 20a0 4e49
0000020 5320 414f a0c2 4020 7220 616e 656d 692e
0000040 766e 6c61 6469 202e 0a28
0000052
Para substituir o C2 A0
s pelo espaço comum, use este:
printf '@ IN SOA @ rname.invalid. (' | sed 's/\xC2\xA0/ /g' | od -x
Saída:
0000000 2040 2020 2020 2020 4e49 5320 414f 2020
0000020 2040 6e72 6d61 2e65 6e69 6176 696c 2e64
0000040 2820 000a
0000044