Das Werkzeug Duplikate Entfernen nimmt einen Textblock, teilt ihn in Zeilen auf und löscht jede Zeile, die ein exaktes Wiederholen einer früheren Zeile ist, im Browser. Der Platzhalter zeigt das Arbeitsbeispiel: apple, banana, apple, cherry, banana, date. Du drückst den Knopf Remove Duplicates, und der Ergebnisblock gibt den deduplizierten Text in einem nur lesbaren Feld aus, mit einer grünen Zeile darüber, die Removed 2 duplicate(s) liest. Nichts wird irgendwo hingesendet: das Aufteilen, die Menge und das Verknüpfen laufen auf dem Gerät, und der Knopf Clear leert die Eingabe, die Ausgabe und die Zählung.
Was das Werkzeug nimmt und was es gibt
Die Eingabe ist ein einzelnes Textfeld, zehn Zeilen hoch und in der Höhe anpassbar, und es wird nichts weiter verlangt. Darüber gibt es einen Clear-Knopf, der alles zurücksetzt, und darunter einen Aktionsknopf, Remove Duplicates, also ist die Rechnung nicht live: Das Ergebnis ändert sich nur, wenn du ihn drückst. Die Ausgabe ist ein nur lesbares Textfeld der gleichen Höhe, und ein Kopier-Knopf sitzt neben seinem Result-Label, aber nur, wenn die Ausgabe nicht leer ist. Die grüne Zählzeile, Removed N duplicate(s), erscheint nur, wenn N über null ist, also zeigt eine Eingabe ohne Wiederholungen das Ergebnis und nichts weiter.
Wie die Deduplizierung abläuft
Die Eingabe wird an den Zeilenumbrüchen in ein Array von Zeilen geteilt, und die Zeilen werden in der Reihenfolge abgelaufen, mit einer Menge, die sich jede bereits behaltene Zeile merkt. Die erste Zeit, die eine Zeile gesehen wird, kommt sie in die Menge und in die Ausgabeliste; jedes Mal, wenn sie wieder gesehen wird, wird sie nur als Duplikat gezählt und weggeschmissen. Die behaltenen Zeilen werden mit Zeilenumbrüchen wieder verbunden, also ist die Ausgabe die Eingabe mit ihren Wiederholungen herausgeschnitten, in der Original-Reihenfolge des ersten Auftretens, nie neu sortiert. Für den Platzhalter, apple, banana, apple, cherry, banana, date, ist das Ergebnis apple, banana, cherry, date, mit 2 entfernt. Der Lauf ist ein Durchgang über die Zeilen, also wird eine Eingabe mit 100,000 Zeilen, von denen 50,000 eindeutig sind, in etwa 40 Millisekunden verarbeitet.
Was als dieselbe Zeile zählt
Zwei Zeilen sind dieselbe nur, wenn jedes Zeichen übereinstimmt, weil der Vergleich ein exakter String-Test ohne Normalisierung ist. Groß- und Kleinschreibung zählt, also sind A und a verschiedene Zeilen und beide bleiben. Leerzeichen zählen, also sind ein a mit einem Leerzeichen am Ende und ein a mit einem Leerzeichen am Anfang verschiedene Zeilen und beide bleiben. Akzente zählen, also sind café und cafe verschiedene Zeilen und beide bleiben. Leere Zeilen zählen auch als Zeilen: Eine Zeile, die leer ist, ist noch eine Zeile, und eine Zeile, die nur ein Leerzeichen ist, ist eine Leerzeichen-Zeile, also reduzieren zwei reine Leerzeichen-Zeilen auf eine. Wenn deine Wiederholungen sich durch eines dieser Dinge unterscheiden, sind sie für dieses Werkzeug keine Wiederholungen, und die Zählung bleibt bei null.
Was mit Zeilenumbrüchen und leeren Zeilen passiert
Das Aufteilen sieht nur das Zeilenumbruch-Zeichen, also bekommt eine Datei, die mit einem Zeilenumbruch endet, am Ende eine extra, leere, Zeile, und wie jeder erste Auftritt einer leeren Zeile bleibt sie: eine Eingabe aus a und b, jeweils auf eigener Zeile endend mit einem Zeilenumbruch, kommt unverändert zurück, mit 0 entfernt. Zwei aufeinanderfolgende leere Zeilen reduzieren auf eine, und eine Eingabe, die nur ein Zeilenumbruch ist, entfernt eine Zeile und gibt ein leeres Ergebnis aus, das trotzdem den Ergebnisblock zeigt, aber keinen Kopier-Knopf. Windows-Zeilenumbrüche sind die scharfe Kante: Das Aufteilen streicht den Wagenrücklauf nicht, also ist derselbe Text, aus einer Windows-Datei gelesen, eine andere Zeile als derselbe Text ohne ihn, und eine Kopie des Ergebnisses behält die Wagenrückläufe.
Wie die Entfernungszählung abgelesen wird
Die grüne Zeile zählt nur die Zeilen, die weggeschmissen wurden, nicht die, die behalten wurden. Vier identische Zeilen, x x x x, entfernen 3 und behalten 1; eine abwechselnde Eingabe, 1 2 1 2, entfernt 2 und behält 2; und eine Eingabe ohne exakte Wiederholungen zeigt nichts, weil die Zeile nur gerendert wird, wenn die Zählung über null ist. Die Zählung ist die Differenz zwischen der Zeilenzahl der Eingabe und der der Ausgabe, nichts weiter.
Wohin der Text geht
Nirgendwo vom Gerät weg. Der Wert des Textfeldes wird von der Seite gelesen, das Aufteilen, die Menge und das Verknüpfen laufen im Browser, und es findet keine Netzwerkanfrage statt. Es gibt kein Verzeichnis und kein gespeichertes Ergebnis: Der einzige Zustand sind die drei Werte, die die Seite hält, Eingabe, Ausgabe und Zählung, und Clear setzt alle drei auf leer und null zurück. Kopieren benutzt die Zwischenablage des Browsers, also verlässt der Text die Seite nur, wenn du Kopieren drückst und woanders einfügst.
Was es nicht ist
Das Werkzeug dedupliziert Zeilen, es normalisiert den Text nicht: um die Leerzeichen und leeren Zeilen vor dem Vergleich zu entfernen, die fast identische Zeilen unterschiedlich aussehen lassen, nutzt man vorher den Leerraum-Reiniger; um die behaltenen Zeilen danach alphabetisch zu sortieren, macht das das Werkzeug Zeilen Sortieren; und um zu zählen, wie oft jedes Wort vorkommt, statt jede Zeile, macht das der Wortfrequenz-Zähler. Für den Einstieg in ein Text-Werkzeug derselben Art sieh den Textumkehrer-Guide.