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