파일이나 쉘 변수에서 알파벳 문자를 계산하는 더 좋고/쉬운 방법을 찾으려고 합니다.

파일이나 쉘 변수에서 알파벳 문자를 계산하는 더 좋고/쉬운 방법을 찾으려고 합니다.

다음 텍스트가 포함된 파일이 있습니다.

we are going to write something 1 2 3

wc9개 단어와 38자로 구성된 한 줄이 있다고 말해주세요.

a-z26자( , 숫자나 공백 제외 등) 만 계산하고 싶습니다 .

이것이 내 현재 솔루션입니다.

grep -o [[:alpha:]] filename | wc -l

명령줄에서 이 작업을 수행하는 "더 나은" 방법이 있는지 알고 싶습니다.

답변1

알파벳이 아닌 문자를 모두 제거 tr하고 결과 문자 수를 계산하겠습니다. tr솔루션과 귀하의 솔루션을 모두 bash내장 솔루션 에 전달하면 timetr솔루션이 적어도 내 시스템에서는 약 5배 더 빠르다는 것을 알 수 있습니다.

tr -cd '[:alpha:]' <filename | wc -m

답변2

awk이 문제를 해결하는데도 사용할 수 있습니다 !

awk '{c+=gsub(s,s)}END{print c}' s='[[:alpha:]]' filename

답변3

노력하다:

LC_ALL=C grep -o [[:alpha:]] | sort -u | wc -l

LC_ALL=C.UTF-8자신의 언어와 일치하도록 로케일을 변경하십시오 [a-zA-Z].

관련 정보