wc und nl
100%

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.

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.

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:

  1. 2 Zeilenumbruchzeichen, als Zeilen gemeldet.
  2. 3 durch Leerraum getrennte Wörter.
  3. 15 Bytes 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?

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, -c oder -m einen Messwert.

  • Unterscheide Byte- und Zeichenanzahl.

  • Nummeriere nicht leere Zeilen mit dem Standardverhalten von nl.

  • Nummeriere mit nl -ba auch Leerzeilen.

Lernfortschritt speichern

Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.

Kostenloses Konto erstellen
Nächste Lektion
Zurück zu Text-Fu