Ich hatte einen Befehl, der eine Textdatei durcharbeitet, alle Vorkommen der Wörter zählt und wie folgt ausgibt:
[email protected] $˜ magic-command-i-forgot | with grep | and awk | sort ./textfile.txt
66: the
54: and
32: I
16: unix
12: bash
5: internet
3: sh
1: GNU/Linux
Es wird also nicht Zeile für Zeile gesucht, sondern Wort für Wort, und zwar für alle Wörter, nicht nur für 1 Wort. Ich hatte es vor langer Zeit irgendwo im Internet gefunden, aber ich kann es nicht finden oder mich daran erinnern..
Akzeptierte Antwort:
Ich würde tr
verwenden statt awk :
echo "Lorem ipsum dolor sit sit amet et cetera." | tr '[:space:]' '[\n*]' | grep -v "^\s*$" | sort | uniq -c | sort -bnr
tr
ersetzt einfach Leerzeichen durch Zeilenumbrüchegrep -v "^\s*$"
schneidet leere Zeilen wegsort
als Eingabe füruniq
vorzubereitenuniq -c
Vorkommnisse zu zählensort -bnr
sortiert in umgekehrter numerischer Reihenfolge, wobei Leerzeichen ignoriert werden
Beeindruckend. Es stellte sich heraus, dass es ein großartiger Befehl war, um die Fluche pro Zeile zu zählen
finden . -name „*.py“ -exec cat {} \; | tr ‘[:Leerzeichen:]’ ‘[\n*]’ | grep -v „^\s*$“ | sortieren | uniq -c | sortieren -bnr | grep scheiße