Ferramentas de texto
Estas ferramentas de texto comparam e remodelam texto puro no seu navegador. Cole duas versões de um arquivo, um trecho de log ou um bloco de configuração e veja exatamente o que mudou, com granularidade de linha, palavra ou caractere, com um patch unificado que você pode copiar para um e-mail ou um ticket.
Formatar
Converter
Converter XML em JSON
Converte sem perder atributos nem listas de um item
Abrir ferramentaConverter JSON em XML
Converte com atributos e nomes que o XML aceita
Abrir ferramentaConverter YAML em JSON
Converte sem que “NO” vire false
Abrir ferramentaConverter JSON em YAML
Converte com aspas que resistem à conversão de volta
Abrir ferramentacURL para Código
Transforme um comando curl em fetch, Python, Go, PHP ou Ruby
Abrir ferramentaConverter camelCase e snake_case
Renomeia identificadores com siglas tratadas direito
Abrir ferramentaTexto decorativo
Gera texto estilizado Unicode para redes
Abrir ferramenta
Editar
Quando usar uma ferramenta de texto que roda no navegador?
Comparar dois blocos de texto é algo que as pessoas fazem o tempo todo e quase sempre em um momento ruim: uma configuração que funciona em um host e em outro não, um corpo de resposta que mudou entre deploys, uma cláusula de contrato que alguém editou sem controle de alterações, uma linha de log que é quase, mas não exatamente, a de ontem.
A tentação é olhar com os próprios olhos. Isso funciona para três linhas e falha silenciosamente para trinta, porque a atenção humana é extremamente boa em ver o que espera ver. Um diff não é uma conveniência nessa situação; é a diferença entre encontrar a mudança e se convencer de que ela não existe.
O que torna uma ferramenta de diff boa é a granularidade. A comparação por linha é o padrão certo e é o que o controle de versão mostra, mas ela engana de verdade em duas classes de entrada: arquivos minificados ou de linha única, em que o documento inteiro é uma linha e o diff degenere em “esta linha mudou”; e linhas longas de prosa, em que uma edição de uma palavra pinta um parágrafo inteiro como reescrito. Os modos de palavra e de caractere existem precisamente para esses casos, e poder alternar entre os três sem recolar o texto é a maior parte do valor.
A outra metade é que a saída precisa ser portátil. Um diff que você só consegue olhar vale menos do que um que você pode entregar para outra pessoa, então a exportação de patch unificado produz um patch padrão com cabeçalhos de hunk apropriados — o formato que o patch(1) aceita e o formato que uma ferramenta de code review renderiza corretamente quando você cola em um comentário.
Texto costuma ser a coisa mais sensível deste site. Um payload de JSON é geralmente dado de máquina; um diff de texto frequentemente é um rascunho de contrato, um memorando interno, uma linha do tempo de incidente ou um e-mail de cliente. É por isso que a comparação acontece no seu navegador e não em um servidor: não como um recurso, mas porque enviar esse material a um host desconhecido para responder a uma pergunta que você poderia responder localmente é um mau negócio a qualquer preço.
Se as duas coisas que você está comparando são JSON e não prosa, use o comparador de JSON em vez disso. Ele compara a estrutura analisada, e não o texto, então reformatar e reordenar chaves — o que um diff de texto reporta como centenas de mudanças — corretamente aparece como nenhuma mudança.
Perguntas frequentes
Qual é a diferença entre diff por linha, por palavra e por caractere?
O diff por linha é o padrão e corresponde ao que o git mostra: uma linha está presente, ausente ou foi alterada. O diff por palavra subdivide cada linha alterada para que você veja que apenas um identificador se moveu, em vez de uma linha inteira de 200 caracteres acender em vermelho e verde. O diff por caractere vai além e é a escolha certa para uma única string longa — uma URL, um hash, um blob base64 — em que a diferença é um caractere no meio e você precisa encontrá-lo.
Posso colar um arquivo inteiro, ou precisa ser um trecho?
Arquivos inteiros ficam bem até o teto de 8 MB da thread principal. A comparação é um diff de Myers, o mesmo algoritmo que o git usa, então seu custo cresce com o número de diferenças em vez do tamanho da entrada — dois arquivos grandes quase idênticos são comparados quase instantaneamente, enquanto dois que não têm nada em comum levam mais tempo.
O patch unificado é o mesmo formato que o git produz?
Sim. A exportação é um unified diff padrão com cabeçalhos de hunk @@, então ele se aplica com o patch(1) e cola em um comentário de code review ou em uma descrição de pull request sem reformatação. A profundidade de contexto é de três linhas, o padrão convencional.
Ele lida com fins de linha do Windows?
Ele normaliza CRLF para LF antes de comparar, então um arquivo que passou por um editor do Windows não reporta todas as linhas como alteradas. Se os próprios fins de linha são o que você está investigando, essa normalização é o comportamento errado — compare os bytes brutos com uma ferramenta que entende de hexadecimal em vez disso.
Meu texto é enviado a algum lugar?
Não. A comparação roda no seu navegador. Não há etapa de envio nem rota de API; a página é um arquivo estático e o algoritmo de diff é JavaScript em execução na aba que você já tem aberta. Abra o painel Network e cole um documento — nada que carregue seu texto aparece.
O que mais existe no ToolsByUs?
- Ferramentas de PDFJunte, divida, gire e converta PDFs sem enviá-los.
- Ferramentas de imagemComprima, redimensione e converta imagens no navegador.
- Ferramentas de vídeoEdite vídeos no navegador, sem upload nem marca d'água.
- Ferramentas de áudioCorte, converta e trabalhe com áudio no navegador.
- Ferramentas para criadoresRedimensione e otimize banners, avatares, emotes e capas para cada plataforma.
- Ferramentas de corEscolha e converta cores, verifique o contraste e simule o daltonismo.
- Ferramentas JSONCompare, formate, valide e explore documentos JSON.
- Ferramentas de codificaçãoBase64, codificação de URL, hashes e inspeção de tokens.
- GeradoresIdentificadores, texto de preenchimento e códigos.