如何从给定目录中的所有文件中提取所有单词以制作字典?单词必须彼此不同(不考虑大写字母。例如,car=Car),它们将在字典中以小写字母书写(即使它们最初是大写的),它们将按字母顺序排序,字典中的每一行只包含一个单词。字典将位于 /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 删除了尾随句点,您可能需要或不需要根据输入文件管理其他符号。