如何使用給定文件中的單字建立字典?

如何使用給定文件中的單字建立字典?

如何從給定目錄中的所有文件中提取所有單字以製作字典?單字必須彼此不同(不考慮大寫字母。例如,car=Car),它們在字典中將用小寫字母書寫(即使最初它們是大寫的),它們將被排序按字母順序排列,字典中的每一行僅包含一個單字。該字典將位於 /home/dictionary.txt 中。

答案1

約翰尼,我認為你想做的事情可以輕鬆地在 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 刪除尾隨句點,您可能需要或不需要管理其他符號,具體取決於您的輸入檔。

相關內容