Wie extrahiere ich alle Wörter aus allen Dateien in einem bestimmten Verzeichnis, um ein Wörterbuch zu erstellen? Die Wörter müssen sich voneinander unterscheiden (Großbuchstaben werden nicht berücksichtigt. Beispiel: car=Car), sie werden im Wörterbuch mit Kleinbuchstaben geschrieben (auch wenn sie ursprünglich Großbuchstaben waren), sie werden alphabetisch sortiert und jede Zeile im Wörterbuch enthält nur ein Wort. Das Wörterbuch befindet sich in /home/dictionary.txt.
Antwort1
Johnny, ich denke, was Sie tun möchten, lässt sich problemlos in einem Bash-Skript erledigen. Aber Sie sollten sich mit Umleitungen, Eingabedateien usw. befassen.sollte Sie hoffentlich zum Laufen bringen. |Zum Erhalten von Wörtern oder Mustern ...
Antwort2
Hängt stark vom Inhalt des Verzeichnisses ab, aber ... dies sollte zumindest ein sehr guter Anfang sein, wenn es sich um reine Textdateien im betreffenden Verzeichnis handelt.
cd
find $directory_name -type f -exec grep -o -E '\w+' {} \; | sort -u -f > out
tr '[:upper:]' '[:lower:]' < out > dictionary.txt
rm out
Über die Schalter man $command
kann ich mehr sagen.
Zahlen entfernen:sed 's/[0-9]*//g' dictionary.txt > a_different_file
Leere Zeilen entfernen:sed '/^$/d' dictionary.txt > some_other_file
Antwort3
Sie können dies mit awk tun
awk 'BEGIN {RS=" "}; /^[A-Za-z]*$/ {print tolower ($0)}' ./* | sed 's_[.].*$__g' | sort -u
„print tolower“ konvertiert einfach alles in Kleinbuchstaben (damit sort -u funktioniert).
Der sed entfernt nachstehende Punkte. Abhängig von Ihren Eingabedateien müssen Sie möglicherweise andere Symbole verwalten.