Eindeutige Zeilen in Reihenfolge
Fügen Sie alpha, beta, alpha, gamma, beta zeilenweise ein und erhalten Sie alpha, beta, gamma: Jede Zeile bleibt dort, wo sie zuerst stand, die 2 späteren Kopien fallen weg. Nichts wird sortiert. 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
- alpha beta alpha gamma beta
- Text
- alpha beta gamma
- Zeilen
- alpha, beta, gamma
- Anzahl
- 3
- Original
- alpha beta alpha gamma beta
Von Hand gesammelte Listen enthalten fast immer Wiederholungen: eine zweimal eingefügte SKU, eine erneut ausgelöste Protokollzeile, ein gerankter Name, der weiter unten kopiert wurde. Der übliche Tabellenkalkulationsgriff ist, die Spalte zu sortieren und benachbarte Zwillinge zu löschen, wodurch still die Reihenfolge zerstört wird, die die Liste nützlich machte. Eindeutige Zeilen unter Beibehaltung der Reihenfolge ist der gegenteilige Vertrag. Dieses Werkzeug liest Ihren mehrzeiligen Text von oben nach unten, behält das erste Vorkommen jeder Zeile an der Stelle, an der sie zuerst erschien, und verwirft spätere exakte Kopien, sodass eine gerankte Wiedergabeliste, ein Änderungsprotokoll oder ein Erstsicht-Inventar in der von Ihnen bereits gewählten Folge bleibt. Sie können Zeilen optional nach dem Entfernen umgebender Leerzeichen vergleichen und dennoch die erste Originalschreibung behalten.
Wie eindeutige Zeilen die Erstauftreten-Reihenfolge statt einer Sortierung behalten
Die Reihenfolge zu bewahren, während eine Liste eindeutig wird, ist nicht dasselbe wie Sortieren und anschließendes Löschen von Nachbarn. Eine Sortieren-dann-eindeutig-Pipeline schreibt den Rang um: die erste SKU, die Sie notiert haben, der erste Fehler, den Sie sahen, und der erste Name einer Wiedergabeliste springen an die alphabetische Position. Wer nach eindeutigen Zeilen mit erhaltener Reihenfolge sucht, will den gegenteiligen Vertrag.
Diese Engine geht die Datei von der ersten Zeile bis zur letzten durch, merkt sich jede Zeile beim ersten Sehen, verwirft spätere exakte Kopien und lässt die Überlebenden in dieser Erstsicht-Folge. Sie teilt an CR, LF und CRLF, damit Windows-, Unix- und alte Mac-Dumps fair verglichen werden. Jede Zeile ist Kandidat so, wie sie geschrieben ist, einschließlich einer ersten Leerzeile, falls eine existiert.
Die Zugehörigkeit verwendet standardmäßig einen exakten Zeichenkettenschlüssel, daher zählen nachgestellte Leerzeichen und Groß-/Kleinschreibung. Wenn trim true ist, ist der Zugehörigkeitsschlüssel die Zeile ohne führende und nachgestellte Leerzeichen, der behaltene Text bleibt jedoch die erste Originalschreibung, die Sie getippt haben. Es gibt keine Locale-Kollation, keine unscharfe Editierdistanz und keine Umschreibung des letzten Vorkommens.
Nutzen Sie diese Seite, wenn die Reihenfolge Teil der Bedeutung ist. Nutzen Sie ein Zeilen-Sortierwerkzeug, wenn Sie A–Z wollen. Nutzen Sie eine groß-/kleinschreibungsunabhängige Deduplizierung, wenn Apple und apple zusammenfallen sollen.
Diese Landing ist für Erstsicht-Unikate, die nicht umgeordnet werden dürfen.
Wo eine Erstsicht-Unikatliste ihren Platz verdient
Entwickler, die Protokollschnipsel und Shell-Verlaufsdumps bereinigen, brauchen eine eindeutige Liste des ersten Vorkommens, bevor sie sie in Tickets einfügen, ohne den frühesten Fehler in die alphabetische Mitte der Datei zu schieben. Produkt- und Merchandising-Teams exportieren eine gerankte SKU-Spalte als Klartext und wollen eindeutige Werte, die die bereits erkämpfte Verkaufsreihenfolge behalten. Wiedergabelisten-Redakteure, Changelog-Autoren und Lehrplanverfasser falten versehentliche Kopier-Einfüge-Wiederholungen zusammen und lassen die beabsichtigte Folge unberührt.
Systemverwalter führen Allowlists aus mehreren Quellen zusammen und brauchen eine deterministische eindeutige Menge, die frühere vertrauenswürdige Einträge nicht umordnet. Lehrkräfte bauen Vokabel- oder Lösungsschlüssel-Zeilensätze ohne versehentliche Wiederholungen aus der Zwischenablage. Wenn Sie später alphabetische Sortierung, groß-/kleinschreibungsunabhängiges Zusammenfallen, CSV-Deduplizierung nach Spaltenschlüsseln oder unscharfe semantische Fusion fast doppelter Zeilen brauchen, behandeln Sie das als getrennte Suchintentionen und Landings statt diese Seite eindeutige-Zeilen-Reihenfolge-erhalten zu überladen.
Anwendungsfälle
Gerankte Listen eindeutig halten, ohne sie neu zu sortieren
Fügen Sie eine Merchandising-Rangliste, eine Wiedergabeliste oder eine Prioritätswarteschlange ein und verwerfen Sie spätere Kopien, während die Erstsicht-Reihenfolge genau dort bleibt, wo Sie sie gesetzt haben.
Protokolle und Verläufe in Erstauftreten-Reihenfolge bereinigen
Falten Sie wiederholte Protokoll- oder Shell-Verlaufszeilen zusammen, damit Tickets kurz bleiben, und lassen Sie das früheste Vorkommen oben statt alphabetisch zu sortieren.
Häufige Fragen
Wie funktionieren eindeutige Zeilen mit erhaltener Reihenfolge?
Die Engine teilt Ihren Text an CR, LF oder CRLF, behält das erste Vorkommen jeder Zeile und verwirft spätere Kopien. Überlebende bleiben in Erstsicht-Reihenfolge. Es wird nichts sortiert.
Worin unterscheidet sich das vom Sortieren eindeutiger Zeilen?
Sortieren und dann eindeutig machen schreibt den Rang in A–Z-Ordnung um. Dieses Werkzeug sortiert nie: das erste Erscheinen einer Zeile ist die Position, die sie behält. Nutzen Sie ein Zeilen-Sortierwerkzeug, wenn Sie alphabetische Ausgabe wollen.
Was ändert die Option trim?
Wenn trim true ist, zählen Zeilen, die sich nur durch führende oder nachgestellte Leerzeichen unterscheiden, als dieselbe Zeile. Der behaltene Text bleibt die erste Originalschreibung, die Sie getippt haben, einschließlich dieser Leerzeichen.
Was geschieht, wenn text fehlt oder leer ist?
Ein leeres Feld gilt als Clientfehler, nicht als erfolgreiche leere Unikatliste.
Gelten Apple und apple als dieselbe Zeile?
Nein. Zeilen werden exakt verglichen, ein Unterschied in der Großschreibung macht sie also zu verschiedenen Zeilen, und beide bleiben. Soll die Schreibung keine Rolle spielen, vereinheitlichen Sie sie vorher.
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/unique-lines-ordered \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"alpha\nbeta\nalpha\ngamma\nbeta"}'const res = await fetch("https://api.kit.forhosting.com/str/unique-lines-ordered", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "alpha\nbeta\nalpha\ngamma\nbeta"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/unique-lines-ordered",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "alpha\nbeta\nalpha\ngamma\nbeta"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/unique-lines-ordered", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"alpha\\nbeta\\nalpha\\ngamma\\nbeta"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"alpha\nbeta\nalpha\ngamma\nbeta"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/unique-lines-ordered", 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": "alpha\nbeta\nalpha\ngamma\nbeta"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.unique_lines_ordered",
"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.
Limits
max_chars | 65536 |
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 Eingabe wird mit invalid_input abgelehnt statt mit einer stillen leeren Zeichenkette, was Clients schützt, die ein Feld nicht gebunden haben. Erfolgreiche API-Aufrufe kosten $0.002 pro Element.
Wie eindeutige Zeilen die Erstauftreten-Reihenfolge statt einer Sortierung behalten
Der Lauf ist ein einziger linearer Durchgang mit einer Hash-Menge, sodass identischer Text und Optionen stets dasselbe JSON erzeugen, das Sie in Tests festnageln können.
Was Sie senden, was zurückkommt und wie Fehler wirken
Senden Sie ein Pflichtfeld namens text mit der nicht leeren mehrzeiligen Zeichenkette, die Sie eindeutig machen wollen. Senden Sie optional trim als Boolesch oder in den üblichen Zeichenkettenformen true, false, yes, no, one oder zero. Wird trim weggelassen, gilt false: der Vergleich ist exakt, einschließlich umgebender Leerzeichen. Aliasnamen wie input, value, s, content, body und lines werden akzeptiert, wenn ältere Clients oder Formulargeneratoren diese Namen verwenden. Fehlendes text, ein Nicht-Zeichenkettenwert oder eine Zeichenkette der Länge null lösen invalid_input mit einer Meldung aus, die das Feld nennt; diese Fehlschläge werden nicht berechnet. Bei Erfolg liefert die Antwort text als die mit Zeilenumbruch verbundenen eindeutigen Zeilen, lines als dieselbe eindeutige Liste in einem Array, count als verbleibende eindeutige Zeilen, original als Echo der Eingabe, original_count als vor dem Eindeutigmachen gesplittete Zeilen, removed als verworfene spätere Kopien, first_positions als die einsbasierten Quellindizes jeder behaltenen Zeile, das aufgelöste trim-Flag und method gleich unique_lines_ordered. Klassische Prüfungen umfassen eine gerankte Obstliste mit wiederholten banana und apple, die auf drei eindeutige Zeilen schrumpft, deren first_positions auf die Ursprungszeilen zeigen, eine mit Leerzeichen gepolsterte Liste, die bei trim true weiter zusammenfällt, und eine einzelne eindeutige Zeile, die unverändert durchläuft mit removed gleich null. Extrem lange Nutzlasten über der dokumentierten Zeichenschranke scheitern mit invalid_input, damit eine einzige Anfrage den Speicher nicht monopolisiert. Der Preis erfolgreicher API-Aufrufe ist die veröffentlichte Basis von $0.002 pro Element.
Wo eine Erstsicht-Unikatliste ihren Platz verdient
Weil diese Fähigkeit eine reine Parse-Engine ist, ist der API-Preis die veröffentlichte Basis von $0.002 pro erfolgreichem Element und fehlgeschlagene Validierung verbraucht kein vorausbezahltes Guthaben. Halten Sie Nutzlasten bei gewöhnlichen Dokumentgrößen, die zu einem Worker-Isolat passen, nicht bei mehr-Megabyte-Lagerdumps.
Integrationsbeispiele
Stabile Fixtures aus unordentlichen Exporten bauen
Wandeln Sie einen Klartext-Dump von URLs, SKUs oder E-Mails in eine eindeutige Zeilenliste für CI um, wobei first_positions jede Überlebende auf ihre Quellzeile abbildet.
Technische Fragen
Was kosten eindeutige Zeilen mit erhaltener Reihenfolge?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht berechnet.