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

Wortvorkommensanzahl aller Wörter in Textdatei abrufen und Druckausgabe sortiert?

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üche
  • grep -v "^\s*$" schneidet leere Zeilen weg
  • sort als Eingabe für uniq vorzubereiten
  • uniq -c Vorkommnisse zu zählen
  • sort -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


Linux
  1. Alle Dateien in einem Ordner drucken?

  2. Wie finde ich das letzte Auftreten eines Musters und drucke alle Zeilen nach dem letzten Auftreten?

  3. Ausgabe nach Spalte sortieren?

  4. Warum zählt uniq identische Wörter als unterschiedlich?

  5. Wie bekomme ich ps zur Druckgruppe?

Erhalten Sie alle möglichen Kombinationen eines Wortes in Klein-/Großbuchstaben?

Ruft die erste Zeile der Ausgabe eines Shell-Befehls ab

Wie bekomme ich sha1sum dazu, binär auszugeben?

Wie kann ich unter Linux eine Liste aller falsch geschriebenen Wörter in einem Text erhalten?

Holen Sie sich die Größe aller Ordner im Verzeichnis

So sortieren Sie diese Ausgabe 1,10,11..2