Zeilenreihenfolge umkehren
Die Zeilen „first line“, „second line“ und „third line“ kommen als „third line“, „second line“ und „first line“ zurück: Die Reihenfolge dreht sich, jede Zeile bleibt von links nach rechts lesbar. Leerzeilen und Einrückungen wandern mit. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- first line second line third line
- Ergebnis
- third line second line first line
- Zeilenanzahl
- 3
Wenn ein Log, eine Liste oder ein eingefügter Text mit dem neuesten Eintrag unten ankommt und Sie das Gegenteil brauchen, ist das Umkehren der Zeilenreihenfolge schneller, als die Datei von Hand neu zu schreiben. Diese Funktion nimmt mehrzeiligen Text, hält den Inhalt jeder Zeile unverändert – einschließlich Leerzeilen und umgebender Leerzeichen – und gibt diese Zeilen von der letzten zur ersten zurück. Sie akzeptiert Unix-LF, Windows-CRLF und klassische Mac-CR-Zeilenenden, normalisiert die Ausgabe auf LF und stellt einen abschließenden Zeilenumbruch wieder her, wenn die Eingabe einen hatte.
Was das Umkehren der Zeilenreihenfolge tatsächlich ändert
Das Umkehren von Zeilen ist nicht dasselbe wie das zeichenweise Umkehren einer Zeichenkette. Jede Zeile bleibt von links nach rechts lesbar; nur die Abfolge der Zeilen wird gedreht, sodass die frühere letzte Zeile zur ersten wird. Diese Unterscheidung ist wichtig für Logs, Änderungslisten, CSV-artige Zeilenauszüge ohne Kopfzeile, Gedichtstrophen und jeden eingefügten Text, bei dem Menschen in Zeilen statt in Bytes denken.
Leerzeilen zählen als Zeilen: Wenn Sie absichtlich eine Lücke zwischen Blöcken gelassen haben, wandert diese Lücke mit der Umkehrung mit und wird nicht entfernt. Führende und abschließende Leerzeichen innerhalb einer Zeile bleiben erhalten, damit Einrückungen und aufgefüllte Spalten überleben. Das Tool sortiert nicht alphabetisch, entfernt keine Duplikate, kürzt nichts und bricht den Text nicht neu um; es ordnet lediglich neu.
Da die Arbeit reine lokale Parse-Logik ist, erzeugt dieselbe Eingabe stets dieselbe Ausgabe, ohne Modell, Netzwerkaufruf oder Locale-Tabelle.
Zeilenenden, abschließende Zeilenumbrüche und leere Eingaben
Text aus der Praxis verwendet selten einen einzigen Zeilenumbruch-Stil. Editoren, Shell-Umleitungen und E-Mail-Programme mischen LF, CRLF und gelegentlich ein bloßes CR. Bei der Eingabe trennt diese Funktion an jeder dieser Folgen, sodass auch gemischte Auszüge korrekt umgekehrt werden.
Das wieder zusammengefügte Ergebnis verwendet LF zwischen den Zeilen für eine stabile, portable Darstellung über Plattformen hinweg. Wenn der ursprüngliche Text mit einem Zeilenumbruch endete, endet auch das Ergebnis mit einem Zeilenumbruch; wenn nicht, endet auch das Ergebnis nicht damit – so behalten Tools, die einen abschließenden Zeilenumbruch als Formdetail der Datei behandeln, diese Form bei. Extrem große Einfügungen sind durch ein Zeichenlimit begrenzt, damit der Speicherverbrauch auf dem Edge-Worker und im Browser vorhersehbar bleibt.
Wo das Umkehren der Zeilenreihenfolge in echte Arbeitsabläufe passt
Support-Ingenieure kehren Log-Ausschnitte um, damit der neueste Stack-Frame oben sitzt, bevor sie ihn in ein Ticket einfügen. Autoren kehren Entwurfsgliederungen um, wenn ein Brainstorming von unten nach oben festgehalten wurde und die veröffentlichte Struktur von oben nach unten gelesen werden soll. Datenpraktiker drehen einen kleinen mehrzeiligen Export, bevor ihn ein Tool verarbeitet, das die neuesten Zeilen zuerst erwartet.
Die Antwort meldet den umgekehrten Text, wie viele Zeilen verarbeitet wurden und ob ein abschließender Zeilenumbruch wiederhergestellt wurde – genug Metadaten, um das Verhalten in automatisierten Prüfungen zu bestätigen, ohne den Textkörper erneut zu parsen. Bauen Sie den Aufruf in ein Shell-Skript, einen CI-Schritt oder ein Helpdesk-Makro ein: überall dort, wo Menschen derzeit einen Editor öffnen und die letzte Zeile nach oben ziehen. Die Parse-Arbeit der Stufe A hält die Latenz niedrig und macht bei jeder Anfrage einen Container oder ein Sprachmodell überflüssig.
Anwendungsfälle
Log-Einfügung mit neuesten Einträgen zuerst
Drehen Sie ein chronologisches Log so, dass die jüngsten Ereignisse zuerst erscheinen, bevor Sie einen Support-Ausschnitt oder eine Störungsnotiz teilen.
Gliederung und Liste neu ordnen
Verwandeln Sie eine von unten nach oben aufgebaute Brainstorming-Liste in eine Gliederung von oben nach unten, ohne jeden Punkt von Hand neu zu schreiben.
Häufige Fragen
Kehrt es die Zeichen innerhalb jeder Zeile um?
Nein. Nur die Reihenfolge der Zeilen ändert sich. Der Text innerhalb einer Zeile bleibt genau so von links nach rechts wie eingereicht.
Was passiert mit Leerzeilen?
Leerzeilen sind echte Zeilen und wandern mit der Umkehrung mit. Sie werden nicht entfernt oder zusammengefasst.
Welche Zeilenenden werden akzeptiert?
LF, CRLF und CR bei der Eingabe. Die Ausgabe verbindet Zeilen mit LF und stellt einen abschließenden Zeilenumbruch nur wieder her, wenn die Eingabe einen hatte.
Was, wenn der Text leer ist?
Fehlender oder nicht als Zeichenkette vorliegender Text schlägt ebenfalls fehl. Eine fehlgeschlagene Prüfung wird nicht berechnet.
Bleibt der Zeilenumbruch am Ende meines Textes erhalten?
Ja, wenn Ihr Text mit einem Zeilenumbruch endet, endet auch das Ergebnis damit, und ohne ihn eben ohne. Die Zeilen werden dabei einheitlich verbunden, auch wenn das Original Windows-Zeilenenden enthielt.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
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)Beispiel-Anfrage
{
"text": "first line\nsecond line\nthird line"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.reverse_lines",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Leere Eingaben werden mit invalid_input abgewiesen, damit Pipelines hörbar fehlschlagen, statt einen leeren Erfolg zu erfinden. Derselbe deterministische Pfad treibt das kostenlose Browser-Formular und die API zu $0.002 pro erfolgreicher Anfrage an.
Zeilenenden, abschließende Zeilenumbrüche und leere Eingaben
Eine leere Zeichenkette, ein fehlendes Textfeld oder ein Textfeld, das keine Zeichenkette ist, schlägt sofort mit invalid_input und einer klaren Meldung fehl. Diese Regel verhindert stille Leerläufe in Aufträgen, die nach einem fehlgeschlagenen Download oder einer leeren Vorlagenauflösung versehentlich leere Inhalte übergeben. Verwenden Sie das kostenlose Formular für einmalige Umkehrungen; binden Sie die API ein, wenn eine Pipeline jedes Mal denselben Vertrag benötigt.
Wo das Umkehren der Zeilenreihenfolge in echte Arbeitsabläufe passt
Da erfolgreiche API-Aufrufe nur $0.002 kosten und eine fehlgeschlagene Prüfung nicht berechnet wird, können Sie leere oder fehlerhafte Nutzdaten testen, ohne das vorausbezahlte Guthaben aufzuzehren.
Integrationsbeispiele
Erzeugung von Test-Fixtures
Erzeugen Sie deterministische, umgekehrte mehrzeilige Fixtures für Unit-Tests, welche die Zeilenreihenfolge nach einer Transformation prüfen.
Technische Fragen
Wie viel kostet die API?
$0.002 pro erfolgreicher Anfrage. Das Browser-Tool ist kostenlos. Ungültige Eingaben werden nicht berechnet.