Schreiben Sie die häufigsten Wörter per Zähler unter Linux in eine Datei

Schreiben Sie die häufigsten Wörter per Zähler unter Linux in eine Datei

Ich möchte die Wörter, die mindestens X-mal im Text vorkommen, in eine Datei schreiben. Zum Beispiel für:

a
b
a
c
b

und X = 2 würde ich erhalten:

a
b

Antwort1

Dies führt die grundlegenden Funktionen aus, ist bei einer großen Wortliste allerdings recht langsam: -

set Count
sort < WordList | uniq | while read w; \
    do [ $(grep -c "^$w$" WordList) -ge $1 ] && echo $w; done

Eine schnellere Antwort (danke an Kamil Maciorowski):-

set Count
sort < WordList | uniq -c | while read c w; do [ $c -ge $1 ] && echo $w; done

Dies setzt voraus:

  • Sie legen Ihre eigenen FileListEinträge fest Count.
  • In steht ein Wort pro Zeile WordList.
  • Die Groß-/Kleinschreibung ist wichtig (z. B. sind Theund theunterschiedlich).
  • Dies ist der Befehlszeilen-Eintrag: In einem Skript set Countwürde er weggelassen und als Parameter übergeben.

Dies sollte Ihnen den Einstieg erleichtern, Sie müssen es jedoch höchstwahrscheinlich an Ihre genauen Anforderungen anpassen.

verwandte Informationen