指定されたファイルの単語で辞書を作成するにはどうすればよいですか?

指定されたファイルの単語で辞書を作成するにはどうすればよいですか?

辞書を作成するために、特定のディレクトリ内のすべてのファイルからすべての単語を抽出するにはどうすればよいですか? 単語は互いに異なっている必要があります (大文字は考慮されません。たとえば、car=Car)。辞書では小文字で記述されます (元々大文字であった場合でも)。単語はアルファベット順に並べられ、辞書の各行には 1 つの単語のみが含まれます。辞書は /home/dictionary.txt にあります。

答え1

johnny、あなたがやりたいことは、bash スクリプトで簡単にできると思います。ただし、リダイレクトや入力ファイルなどについて勉強したほうがいいでしょう。;うまくいけば、うまくいくはずです。 |単語やパターンを取得するには...

答え2

ディレクトリの内容に大きく依存しますが、問題のディレクトリ内のプレーンテキスト ファイルについて話している場合、これは少なくとも非常に良いスタートになるはずです。

cd
find $directory_name -type f -exec grep -o -E '\w+' {} \; | sort -u -f > out
tr '[:upper:]' '[:lower:]' < out > dictionary.txt
rm out

スイッチについては、man $command詳しく説明できます。

数字を削除:sed 's/[0-9]*//g' dictionary.txt > a_different_file

空白行を削除します:sed '/^$/d' dictionary.txt > some_other_file

答え3

awkでこれを行うことができます

 awk 'BEGIN {RS=" "}; /^[A-Za-z]*$/ {print tolower ($0)}' ./* | sed 's_[.].*$__g' | sort -u

「print tolower」は単にすべて小文字に変換します(sort -u が機能するようになります)。

sed は末尾のピリオドを削除しますが、入力ファイルによっては他の記号を管理する必要がある場合もあります。

関連情報