Inverter ordem das linhas
As linhas “first line”, “second line” e “third line” voltam como “third line”, “second line” e “first line”: a ordem se inverte e cada linha continua legível da esquerda para a direita. Linhas em branco e recuos acompanham o texto. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- first line second line third line
- Resultado
- third line second line first line
- Número de linhas
- 3
Quando um log, uma lista ou um texto colado chega com a entrada mais recente no rodapé e você precisa do contrário, inverter a ordem das linhas é mais rápido do que reescrever o arquivo à mão. Esta capacidade recebe um texto multilinha, mantém intacto o conteúdo de cada linha — inclusive linhas em branco e espaços ao redor — e devolve essas linhas da última para a primeira. Ela aceita finais de linha Unix LF, Windows CRLF e Mac clássico CR, normaliza a saída para LF e restaura uma quebra de linha final quando a entrada tinha uma.
O que a inversão da ordem das linhas realmente muda
Inverter linhas não é o mesmo que inverter uma cadeia caractere por caractere. Cada linha permanece legível da esquerda para a direita; apenas a sequência de linhas é invertida, de modo que a antiga última linha passa a ser a primeira. Essa distinção importa para logs, listas de alterações, despejos de linhas ao estilo CSV sem cabeçalho, estrofes de poesia e qualquer texto colado em que as pessoas pensam em linhas, e não em bytes.
Linhas em branco contam como linhas: se você deixou de propósito um espaço entre blocos, esse espaço se move com a inversão e não é removido. Espaços à esquerda e à direita dentro de uma linha são preservados, para que a indentação e as colunas preenchidas sobrevivam. A ferramenta não ordena em ordem alfabética, não remove duplicatas, não apara nem reajusta o texto; ela apenas reordena.
Como o trabalho é lógica de análise puramente local, a mesma entrada sempre produz a mesma saída, sem modelo, chamada de rede ou tabela de localidade envolvida.
Finais de linha, quebras finais e entrada vazia
O texto do mundo real raramente usa um único estilo de quebra de linha. Editores, redirecionamentos de shell e clientes de e-mail misturam LF, CRLF e, ocasionalmente, CR isolado. Na entrada, esta capacidade divide em qualquer uma dessas sequências, de modo que despejos mistos ainda são invertidos corretamente.
O resultado reunido usa LF entre as linhas para uma representação estável e portátil entre plataformas. Se o texto original terminava com uma quebra de linha, o resultado também termina com uma; se não terminava, o resultado tampouco termina — assim, ferramentas que tratam a quebra final como um detalhe do formato do arquivo preservam esse formato. Essa regra evita operações silenciosas sem efeito em tarefas que passam corpos em branco por acidente após um download com falha ou a expansão de um modelo vazio.
Textos colados extremamente grandes são limitados por um limite de caracteres, de modo que o uso de memória permanece previsível no worker de borda e no navegador.
Onde a inversão da ordem das linhas se encaixa em fluxos reais
Engenheiros de suporte invertem o final dos logs para que o quadro de pilha mais recente fique no topo antes de colar em um ticket. Redatores invertem esboços de rascunho quando um brainstorm foi capturado de baixo para cima e a estrutura publicada deve ser lida de cima para baixo. Profissionais de dados invertem uma pequena exportação multilinha antes de uma ferramenta que pressupõe as linhas mais recentes primeiro.
A resposta informa o texto invertido, quantas linhas foram processadas e se uma quebra de linha final foi restaurada — metadados suficientes para verificar o comportamento em checagens automatizadas sem reanalisar o corpo. Encaixe a chamada em um script de shell, uma etapa de CI ou uma macro de central de ajuda: em qualquer lugar onde hoje as pessoas abrem um editor e arrastam a última linha para o topo.
O trabalho de análise Tier-A mantém a latência baixa e elimina a necessidade de um contêiner ou modelo de linguagem em cada requisição.
Casos de uso
Colar log com o mais recente primeiro
Inverta um log cronológico para que os eventos mais recentes apareçam primeiro antes de compartilhar um trecho de suporte ou uma nota de incidente.
Reordenar esboços e listas
Transforme uma lista de brainstorm de baixo para cima em um esboço de cima para baixo sem reescrever cada item à mão.
Perguntas frequentes
Ela inverte os caracteres dentro de cada linha?
Não. Apenas a ordem das linhas muda. O texto dentro de uma linha permanece da esquerda para a direita exatamente como enviado.
O que acontece com as linhas em branco?
Linhas em branco são linhas de verdade e se movem com a inversão. Elas não são removidas nem agrupadas.
Quais finais de linha são aceitos?
LF, CRLF e CR na entrada. A saída une as linhas com LF e restaura uma quebra de linha final apenas se a entrada tinha uma.
E se o texto estiver vazio?
Texto ausente ou que não seja cadeia também falha. A validação com falha não é cobrada.
Como coloco as entradas mais recentes de um log no topo?
Cole o log como está, com o mais antigo primeiro. A última linha vira a primeira, então o evento mais recente fica no topo, pronto para colar em um chamado, e cada linha continua intacta.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/str/reverse-lines \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"first line\nsecond line\nthird line"}'const res = await fetch("https://api.kit.forhosting.com/str/reverse-lines", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "first line\nsecond line\nthird line"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/reverse-lines",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "first line\nsecond line\nthird line"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/reverse-lines", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"first line\\nsecond line\\nthird line"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"first line\nsecond line\nthird line"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/reverse-lines", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "first line\nsecond line\nthird line"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.reverse_lines",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
A entrada vazia é rejeitada com invalid_input, de modo que os pipelines falham de forma explícita em vez de inventar um sucesso vazio. O mesmo caminho determinístico alimenta o formulário gratuito no navegador e a API a US$ 0,002 por requisição bem-sucedida.
Finais de linha, quebras finais e entrada vazia
Uma cadeia vazia, um campo de texto ausente ou um texto que não seja cadeia falham imediatamente com invalid_input e uma mensagem clara. Use o formulário gratuito para inversões pontuais; conecte a API quando um pipeline precisar do mesmo contrato todas as vezes.
Onde a inversão da ordem das linhas se encaixa em fluxos reais
Como as chamadas de API bem-sucedidas custam apenas US$ 0,002 e a validação com falha não é cobrada, você pode testar cargas vazias ou malformadas sem esgotar o saldo pré-pago.
Casos de integração
Geração de fixtures de teste
Produza fixtures multilinha invertidas e determinísticas para testes de unidade que verificam a ordem das linhas após uma transformação.
Perguntas técnicas
Quanto custa a API?
US$ 0,002 por requisição bem-sucedida. A ferramenta no navegador é gratuita. Entradas inválidas não são cobradas.