파일의 모든 소문자 단어 목록을 얻으려고 합니다. 지금까지 명령줄을 사용하여 목록을 가져오는 지점에 도달했습니다.
cat filename.txt | tr ' ' \\n | grep -w '[[:lower:]]*' | sort -u | less
그러나 이 명령은 목록에서 알파벳이 아닌 문자를 제거하지 않고 목록에서 알파벳이 아닌 문자를 제거합니다. 양식이 포함된 목록을 받습니다.
(which
(which,
about
about,
about.
about:
about;
about?
which
나는 단지 텍스트로만 이루어진 줄에만 관심이 있습니다. 비슷한 줄 명령을 사용하여 어떻게 얻을 수 있나요?
답변1
POSIX적으로:
tr -s '[:blank:]' '[\n*]' <file | grep -xE '[[:lower:]]+'
답변2
당신을 위한:
sed 's/[^A-Za-z]\+/\n/g;s/$/\n/;s/[^\n]*[A-Z][^\n]*\n//g;s/\n$//' <input_file | sort -u
답변3
나는 잠시 후 이 질문으로 돌아왔고 기록을 위해 이 작업을 수행하는 고정된 명령을 보여주고 싶었습니다.
tr -s '[:blank:]' '[\n*]' < filename.txt | grep -wo '[[:lower:]]*' | sort -u | less -N