Zeilenzähler
Gesamtzeilen, Leerzeilen zählen und Zeilenstatistiken erhalten.
Geprüft von ZeroUtil Editorial Team · Zuletzt geprüft
Den Zeilenzähler verwenden
- Text einfügen in das Eingabefeld. Quellcode, CSV-Exporte, Log-Dateien, Aufsätze und Chat-Transkripte funktionieren alle problemlos.
- Die Zusammenfassungskarten lesen, die in Echtzeit aktualisieren: Gesamtzeilen, nicht-leere Zeilen, Leerzeilen, durchschnittliche Zeilenlänge, längste Zeilenlänge und kürzeste nicht-leere Zeilenlänge.
- Nicht-leere und Gesamtzahlen vergleichen, um zu sehen, wie viel der Datei Padding ist. Ein Verhältnis über 30 Prozent leer deutet oft auf inkonsistente Zeilenumbruchbehandlung irgendwo vorgelagert hin.
- Die Metrik der längsten Zeile verwenden, um zeilenumbruchbrechende Zeilen in Code oder CSV-Daten zu erkennen - eine 2000-Zeichen-Zeile signalisiert fast immer fehlende Zeilenumbruch-Normalisierung.
- Die Metriken kopieren, wenn der CI-Bericht oder Code-Review die Zahlen benötigt, oder sie einfach vom Bildschirm ablesen.
Wie der Zähler funktioniert
Das Zählen beginnt mit input.split(/\r?\n/), was an Unix-LF oder Windows-CRLF-Zeilenenden aufteilt und ein Array von Zeilen erzeugt. Die Gesamtzahl ist die Array-Länge; die nicht-leere Anzahl ist arr.filter(l => l.trim().length > 0).length, und die Leerzeilen-Anzahl ist die Differenz. Längste und kürzeste sind je ein Durchlauf über das Array, der Math.max und Math.min der Zeilenlängen nimmt. Der Durchschnitt ist totalChars / totalLines, auf eine ganze Zahl gerundet. Die Zeichenlänge hier ist JavaScripts string.length, also UTF-16-Codeeinheiten - nahe, aber nicht exakt dasselbe wie benutzerwahrgenommene Zeichen; der Zeichenlängen-Rechner auf dieser Seite liefert die Unterscheidung. Alle Berechnungen finden im Browser-Tab ohne Netzwerkaktivität und ohne Service-Worker-Interferenz statt.
Wann es verwendet werden würde
- Die Zeilenanzahl einer Code-Datei prüfen, um zu entscheiden, ob sie aufgeteilt werden soll - viele Team-Styleguides begrenzen Module auf 500-1000 Zeilen.
- Validieren, dass ein CSV-Export die erwartete Zeilenanzahl produziert hat, bevor er in die Datenbank importiert wird.
- Die Größe eines Gedichts, Drehbuchs oder Skripts schätzen, bei dem eine Zeile einem Takt entspricht.
- Debuggen, warum
wc -lauf dem System eine andere Zahl als der Editor meldet (fast immer ein fehlender abschließender Zeilenumbruch). - Die Länge einer Pull-Request-Beschreibung gegen eine Unternehmensrichtlinie messen, die PR-Bodys auf eine bestimmte Zeilenanzahl begrenzt.
- Eine riesige stringifizierte JSON-Zeile in einer Log-Datei erkennen, indem die Metrik der längsten Zeile unverhältnismäßig groß ist.
Häufige Fallstricke und Randfälle
- Der abschließende Zeilenumbruch. Eine Datei, die mit
\nendet, hat eine mehr Zeile als ihre sichtbare Zeilenanzahl, weilsplit('\n')einen leeren String nach dem abschließenden Zeilenumbruch erzeugt. Dieses Werkzeug meldet diese extra Leerzeile und entspricht damit der POSIX-Definition, bei der eine Zeile mit einem Zeilenumbruch enden muss. - CRLF vs. LF. Der Regex
/\r?\n/verarbeitet beide sauber. Wenn eine Datei klassische Mac-\r-only-Zeilenenden verwendet (selten nach 2000, aber noch möglich aus einigen Legacy-Exporten), erscheint jede Zeile als eine riesige Zeile. - Leerzeilen-Definition. Eine Zeile, die nur Leerzeichen oder Tabulatoren enthält, zählt hier als leer. Wenn die striktere Definition bevorzugt wird, bei der leer null Bytes bedeutet, die Zeilen subtrahieren, die wirklich leer sind - sie sind eine Teilmenge dessen, was gemeldet wird.
- Nicht-ASCII-Längen. Eine Zeile mit Emoji oder CJK-Ideogrammen kann eine String-Länge haben, die nicht mit ihrer sichtbaren Breite übereinstimmt. Der Zeichenlängen-Rechner auf dieser Seite meldet Graphem-Cluster, wenn das für den Anwendungsfall wichtig ist.
- Sehr langer einzeiliger Input. Wenn jemand ein minifiziertes JavaScript-Bundle als eine Zeile einfügt, ist die Gesamtzeilenzahl 1 und die längste sind Millionen; das Werkzeug verarbeitet das, aber das Textarea des Browsers kann verzögern.
Was "Zeile" eigentlich bedeutet
In POSIX (IEEE Std 1003.1) ist eine Zeile als null oder mehr Nicht-Zeilenumbruch-Zeichen gefolgt von einem Zeilenumbruch definiert, weshalb wc -l null für eine Datei ohne abschließenden Zeilenumbruch meldet - dieser abschließende Inhalt ist technisch eine "unvollständige Zeile." Editoren und IDEs unterscheiden sich: VS Code und die meisten modernen Editoren zeigen diesen abschließenden Inhalt als letzte Zeile und fügen beim Speichern automatisch einen Zeilenumbruch hinzu, wenn die Einstellung aktiv ist. Unicode definiert mehrere Zeichen, die als Zeilengrenzen wirken können: \n (LF, U+000A), \r (CR, U+000D), \r\n (CRLF), \v (vertikaler Tabulator, U+000B), \f (Seitenvorschub, U+000C), U+0085 (nächste Zeile), U+2028 (Zeilentrennzeichen) und U+2029 (Absatztrennzeichen). JavaScripts Regex /\r?\n/ ist bewusst eng und behandelt nur die häufigen Fälle - was dem entspricht, was IDE, Git und die meisten Build-Tools als Zeile behandeln.
Vergleich zu Alternativen
wc -l datei ist die definitive Unix-Zählung und läuft mit nativer Geschwindigkeit; es zählt Zeilenumbrüche, also wird eine nicht-terminierte letzte Zeile nicht gezählt, was den klassischen "fehlender abschließender Zeilenumbruch"-Fall erkennt. awk 'END {print NR}' zählt genauso, druckt aber vor dem Beenden. Die Statusleiste von VS Code zeigt Zeile und Spalte des Cursors sowie die Gesamtzahl beim Hover. Für CSV-Zeilenzählung ist ein CSV-bewusstes Werkzeug wie csvkits csvstat sicherer, weil es zitierte Zeilenumbrüche in Zellen respektiert - etwas, das ein naiver Zeilenumbruch-Split (einschließlich dieses Werkzeugs) falsch handhabt. Diesen Web-Zähler verwenden, wenn ein kurzer bis mittlerer Einfügetext vorliegt und mehrere Metriken auf einmal gewünscht werden, oder wenn kein Terminal verfügbar ist und wc nicht ausgeführt werden kann. Für mehrstündige Log-Dateien bei wc -l bleiben, das in unter einer Sekunde auf einem Terabyte-SSD fertig ist.
Häufig gestellte Fragen
Warum sagt wc -l eine Zeile weniger als dieses Werkzeug?
Weil POSIX wc -l Zeilenumbruchzeichen zählt, und eine Datei ohne abschließenden Zeilenumbruch einen Zeilenumbruch weniger als die sichtbare Anzahl der Zeilen produziert. Dieses Werkzeug teilt an Zeilenumbrüchen auf und gibt die Array-Länge zurück, zählt also den letzten nicht-terminierten Inhalt als eine Zeile. Beide Interpretationen sind valide - POSIX ist strenger darüber, was als "Zeile" gilt, dieses Werkzeug stimmt mit dem überein, was im Editor zu sehen ist. In jedem Fall beträgt die Differenz höchstens eins.
Zählt der Zähler eine Zeile mit nur einem Leerzeichen als leer?
Ja. Eine Zeile gilt als leer, wenn ihre getrimnte Länge null ist, also eine Zeile, die nur Leerzeichen, Tabulatoren oder andere Whitespace-Zeichen aus Unicode\s enthält, als leer zählt. Wenn die striktere Definition bevorzugt wird, bei der leer buchstäblich leer bedeutet, muss vorher vorverarbeitet werden; diese Teilmenge ist immer kleiner als das, was dieses Werkzeug als leer meldet.
Wie geht der Zähler mit gemischten CRLF und LF um?
Der Split-Regex /\r?\n/ akzeptiert beide Arten von Zeilenenden im selben Input, sodass eine aus Windows exportierte und mit Unix-erzeugtem Inhalt verkettete Datei korrekt zählt. Eine Zeile, die nur mit \r endet (ohne folgendes \n), wird nicht aufgeteilt, was bei modernen Dateien die richtige Wahl ist, aber überraschend sein kann, wenn es um alte Mac-Classic-Text geht - dieser letzte Fall ist heute praktisch ausgestorben.
Wird die Zählung vollständig im Browser durchgeführt?
Ja. Die Split-, Filter- und Reduce-Operationen laufen alle im JavaScript-Engine des aktuellen Tabs ohne Netzwerkaktivität. Es gibt keinen fetch-Aufruf, keinen Beacon und keinen Service Worker, der den Input abfängt. Das Schließen des Tabs oder das Navigieren weg gibt den Text aus dem Speicher frei. Das kann demonstriert werden, indem DevTools geöffnet und das Netzwerk-Panel beim Einfügen beobachtet wird - nichts erscheint.
Wie lang darf die längste Zeile sein, ohne den Browser zu verlangsamen?
Eine einzelne Zeile von einigen Megabyte ist auf Desktop-Browsern in Ordnung. Darüber hinaus wird das Textarea-Rendering zum Engpass, nicht der Zähler selbst. Bei Dateien mit enormen minifizierten Zeilen (kompilierte JS-Bundles, einzeilige JSON-Dumps) kann der Browser-Tab träge werden; der Zeilenzähler berechnet trotzdem korrekt in wenigen Millisekunden. Für wirklich riesige Inputs sind wc und awk im Terminal besser geeignet.
Wie wird die durchschnittliche Zeilenlänge berechnet?
Summe der JavaScript-String-Länge jeder Zeile geteilt durch die Gesamtzahl der Zeilen, auf eine ganze Zahl gerundet. Da String-Länge UTF-16-Codeeinheiten statt sichtbarer Graphem-Cluster zählt, trägt eine Zeile mit einem aus vier ZWJ-verbundenen Codepoints bestehenden Emoji-Familie mehr als ein Zeichen pro sichtbare Glyphe bei. Für prosa- oder emoji-lastigen Text ist die Graphem- Metrik, die der Zeichenlängen-Rechner auf dieser Seite meldet, intuitiver.
Kann ich damit Codezeilen zählen?
Ja, aber es zählt jede Zeile einschließlich Kommentaren, Leerzeilen und Import-Anweisungen. Für eine korrekte Anzahl logischer Codezeilen wird ein Werkzeug wie cloc, tokei oder scc benötigt, das Kommentarsyntax und Sprachstruktur versteht. Für eine schnelle Schätzung der Dateigröße ist dieses Werkzeug in Ordnung; für tatsächliche Komplexitäts- oder Produktivitätskennzahlen einen sprachbewussten Zähler verwenden.
Warum zeigt die Metrik der kürzesten Zeile manchmal 1 statt 0?
Die Berechnung der kürzesten Zeile schließt Leerzeilen bewusst aus, weil die nützlich-kurze Antwort die kürzeste Zeile ist, die tatsächlichen Inhalt enthält. Wenn bei Dateien mit Leerzeilen 0 angezeigt würde, wäre die Metrik nichtssagend. Wenn der absolute Mindestwert einschließlich Leerzeilen gewünscht wird, ist die Antwort 0, sobald es irgendeine Leerzeile gibt.
Wie unterscheidet sich das vom Wortzähler?
Dieses Werkzeug zählt Zeilen, also Segmente, die durch Zeilenumbrüche getrennt sind; Wortzähler tokenisieren auf Leerzeichen, um diskrete Wörter zu zählen. Sie beantworten verschiedene Fragen: Zeilen messen, wie lang eine Datei strukturell ist, Wörter messen, wie viel Inhalt sie hat. Eine 100-Zeilen- Datei kann je nach Zeilenlänge eine andere Wortanzahl haben. Beide verwenden, wenn ein Dokument für einen Editor oder eine Publikation dimensioniert werden soll.
Zählt das Werkzeug eine leere Datei als null Zeilen?
Ja. Ein leerer Input erzeugt ein leeres Split-Array mit der Länge null. Ein einzelnes Zeilenumbruchzeichen erzeugt ein Array mit zwei leeren Strings, wird also als zwei Zeilen gemeldet - beide leer. Das entspricht dem Verhalten von Editoren, die eine einzelne Leerzeile am Anfang einer ansonsten leeren Datei anzeigen.
Verwandte Tools
- Wortzähler
Wörter, Zeichen, Sätze, Absätze zählen und Lesezeit schätzen.
- Text-Sortierer
Zeilen alphabetisch, numerisch, nach Länge oder zufällig sortieren.
- SEO-Wortzähler
Wörter, Zeichen, Überschriften, Absätze mit Keyword-Dichte und Lesbarkeit zählen.
- Text umkehren
Text nach Zeichen, Worten oder Zeilen umkehren.
- Statistikrechner
Berechne Mittelwert, Median, Modus, Standardabweichung, Varianz und mehr.
- Würfel-Roller
W4, W6, W8, W10, W12 oder W20 würfeln. Anzahl wählen, Einzelergebnisse und Summen mit Würfelverlauf anzeigen.
Mehr Text Tools
Binary to Text
Convert text to binary and binary back to text.
Open toolCase Converter
Convert text between UPPER, lower, Title, Sentence, camelCase, snake_case and more.
Open toolCharacter Counter
Count characters with platform-specific limits for Twitter, Instagram and more.
Open toolEmoji Picker & Search
Search and copy emojis by name or category.
Open toolFancy Text Generator
Generate stylish text with bubbles, squares, upside down and more for social media.
Open toolFind & Replace
Find and replace text with regex support and case-sensitive options.
Open tool