Der Befehl wc zählt Eigenschaften von Textströmen, während nl die Eingabe mit erzeugten Zeilennummern ausgibt. Beide lesen Dateien oder stdin und schreiben ihre Ergebnisse nach stdout.
Text-Fu · Lektion 15
wc und nl
Lerne, Zeilen, Wörter, Bytes oder Zeichen mit wc zu zählen und Zeilen mit nl zu nummerieren.
Die Standardausgabe von wc lesen
Ohne Zähloption gibt wc die Anzahl der Zeilenumbrüche, Wörter und Bytes aus; wurde eine Datei angegeben, folgt deren Name:
$ printf 'red blue\ngreen\n' > colors.txt
$ wc colors.txt
2 3 15 colors.txt
Von links nach rechts:
2Zeilenumbruchzeichen, als Zeilen gemeldet.3durch Leerraum getrennte Wörter.15Bytes in diesem ASCII-Beispiel.
Eine letzte Textzeile ohne abschließenden Zeilenumbruch wird von wc -l nicht gezählt, da diese Option Zeilenumbruchzeichen und nicht optisch wahrgenommene Zeilen zählt.
Wofür stehen die ersten drei Zahlen der Standardausgabe von wc file.txt?
Einen einzelnen Messwert anfordern
Wähle nur den benötigten Messwert:
-l: Zählt Zeilenumbruchzeichen.-w: Zählt Wörter.-c: Zählt Bytes.-m: Zählt Zeichen gemäß der aktuellen Locale.
Zum Beispiel:
$ wc -w colors.txt
3 colors.txt
Bei ASCII-Text sind Byte- und Zeichenanzahl gleich, bei Mehrbyte-Kodierungen wie UTF-8 können sie sich unterscheiden. Wird stdin ohne Dateinamenoperand verwendet, lässt wc die Dateibezeichnung normalerweise weg:
$ printf 'one two\n' | wc -w
2
Welcher Befehl meldet ausschließlich die Wortanzahl von essay.txt?
Welche Option weist wc an, in der aktuellen Locale Zeichen statt Bytes zu zählen?
Bei mehreren benannten Dateien gibt wc ein Ergebnis pro Datei und eine Zeile total aus. GNU wc -L meldet die maximale Anzeigebreite einer Eingabezeile.
Nicht leere Zeilen mit nl nummerieren
Standardmäßig nummeriert nl nicht leere Zeilen im logischen Textkörper seiner Eingabe. Angenommen, notes.txt enthält eine leere zweite Zeile:
alpha
beta
Die Leerzeile bleibt erhalten, erhält aber keine Nummer:
$ nl notes.txt
1 alpha
2 beta
nl schreibt eine nummerierte Ausgabe; notes.txt wird nicht verändert.
Wie behandelt nl notes.txt standardmäßig leere Zeilen im Textkörper?
Jede Zeile nummerieren
Mit -ba wählst du für den Textkörper den Nummerierungsstil a, der alle Zeilen nummeriert:
$ nl -ba notes.txt
1 alpha
2
3 beta
Weitere Optionen steuern die Formatierung. Beispielsweise legt -w 3 die Breite des Nummernfelds fest und -s ': ' ändert das Trennzeichen hinter der Nummer.
Welcher Befehl nummeriert jede Textkörperzeile von notes.txt, einschließlich Leerzeilen?
Mit diesen Übungen kannst du das Zählen und Nummerieren von Text praktisch trainieren:
- Linux wc Befehl: Textzählung – Zähle mit
wcWörter, Zeilen und Zeichen in Textdateien. - Linux nl Befehl: Zeilennummerierung – Nummeriere mit
nldie Zeilen von Textdateien. - Wortanzahl und Sortierung – Kombiniere
wcmit Sortierung, um Zeilen, Wörter und Zeichen zu zählen und Text praktisch zu analysieren.
Lektion abgeschlossen
Sie haben wc und nl abgeschlossen
Du kannst nun Textströme messen und sichtbare Zeilennummern hinzufügen, ohne die Quelle zu verändern.
Deute die Standardspalten für Zeilen, Wörter und Bytes von
wc.Wähle mit
-l,-w,-coder-meinen Messwert.Unterscheide Byte- und Zeichenanzahl.
Nummeriere nicht leere Zeilen mit dem Standardverhalten von
nl.Nummeriere mit
nl -baauch Leerzeilen.
Lernfortschritt speichern
Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.
Kostenloses Konto erstellen