주어진 파일의 단어로 사전을 어떻게 구성합니까?

주어진 파일의 단어로 사전을 어떻게 구성합니까?

사전을 만들기 위해 주어진 디렉토리의 모든 파일에서 모든 단어를 어떻게 추출합니까? 단어는 서로 달라야 합니다(대문자는 고려되지 않습니다. 예를 들어 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는 후행 마침표를 제거하므로 입력 파일에 따라 다른 기호를 관리해야 할 수도 있고 필요하지 않을 수도 있습니다.

관련 정보