GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Die Zeichen jeder Zeile mit Wc zählen?

Ist es möglich, wc zu verwenden, um die Zeichen jeder Zeile anstelle der Gesamtzahl der Zeichen zu zählen?

z. B.

echo -e foo\nbar\nbazz | grep -i ba

gibt zurück:

bar
bazz

Warum also nicht echo -e foo\nbar\nbazz | grep ba | wc -m
eine Liste der Längen dieser Wörter zurückgeben? (3 und 4)

Vorschläge?

P.S.:Warum werden Zeilenvorschübe mit wc -m gezählt? ? wc -l zählt die Zeilenumbrüche, also warum sollte wc -m zählen sie auch?

Akzeptierte Antwort:

wc zählt über die gesamte Datei;
Sie können awk verwenden Zeile für Zeile verarbeiten (ohne Zeilentrennzeichen):

echo -e "foonbarnbazzn" | grep ba | awk '{print length}'

oder als awk ist meistens eine Obermenge von grep :

echo -e "foonbarnbazzn" | awk '/ba/ {print length}'

(Beachten Sie, dass einige awk Implementierungen melden die Anzahl der Bytes (wie wc -c ) im Gegensatz zur Anzahl der Zeichen (wie wc -m ) und andere zählen Bytes, die nicht Teil gültiger Zeichen sind, zusätzlich zu den Zeichen (während wc -m würde sie in den meisten Implementierungen ignorieren))


Linux
  1. Arbeiten mit Datenströmen auf der Linux-Befehlszeile

  2. Arbeiten mit Pipes auf der Linux-Befehlszeile

  3. Bearbeiten von Text auf der Kommandozeile mit sed

  4. So fügen Sie Text am Anfang jeder Zeile in Vim ein

  5. Wort am Zeilenende mit Sed anhängen?

Lösen Sie ein Rätsel auf der Linux-Befehlszeile mit Nudoku

Tipps zum Auflisten von Dateien mit ls in der Linux-Befehlszeile

Bearbeiten von Text in der Befehlszeile mit grep

Zeiterfassung mit Timewarrior auf der Kommandozeile

Verwenden des tr-Befehls in Linux, um mit Charakteren zu spielen

So funktioniert die Versionskontrolle mit Git auf der Kommandozeile