
~/dictwords.txt
나는 파일에서 발견된 단어의 수를 포함하는 파일을 생성하려고 했습니다 /usr/share/dict/words
.
이미 파일을 만든 다음 잘못했기 때문에 파일을 제거했습니다. 원래 echo 명령을 수행했습니다. 그러다가 이 명령을 시도해보고 내가 옳았다고 생각해서 너무 기뻤습니다.
wc -w /usr/share/dict/words > ~/dictwords.txt
여전히 틀렸습니다. 파일 이름 없이 번호만 가지고 있어야 합니다.
답변1
기본적으로 wc
파일 이름과 함께 결과를 인쇄합니다. 결과만 원하는 경우 wc
stdin에서 읽기 입력을 수행해야 합니다.
</usr/share/dict/words wc -w > ~/dicwords.txt
현재 솔루션에서는 다른 도구를 사용하여 , , ... wc
등 의 결과만 얻을 수 있습니다 .cut
awk
grep
wc -w /usr/share/dict/words | cut -d' ' -f1 > ~/dicwords.txt
이는 구현이 wc
숫자 앞에 공백 문자를 추가하지 않는다고 가정하지만 모든 wc
구현의 경우는 아닙니다.
답변2
스크립트에서 단어 개수를 사용해야 하는 경우 값을 변수에 저장할 수 있습니다.
numWords=$(wc -w /usr/share/dict/words | tr -dc '0-9')
그렇지 않으면 파일에 저장할 수 있습니다.
wc -w /usr/share/dict/words | tr -dc '0-9' > ~/dicwords.txt
답변3
파일에는 /usr/share/dict/words
한 줄에 하나의 단어가 포함되어야 합니다. 일부 시스템에서는 한 줄에 하나의 "사전 용어"가 포함될 수 있고 이들 각각은 공백으로 구분된 두 개 이상의 단어로 구성될 수 있다고 상상하지만, 나는 이것을 직접 본 적이 없습니다.
다음 중 하나를 사용하여 줄 수를 얻습니다.
wc -l </usr/share/dict/words
(파일의 개행 수를 계산합니다)sed -n '$=' /usr/share/dict/words
(마지막 줄에는 현재 줄번호를 출력)awk 'END { print NR }' /usr/share/dict/words
(입력 종료시 읽은 레코드(라인) 개수를 출력)grep -c '[^[:space:]]' /usr/share/dict/words
(공백이 아닌 문자가 하나 이상 포함된 줄 수를 계산합니다.)
이 중 wc -l
변형은 실제 숫자 앞이나 뒤에 추가 공백을 출력하거나 출력하지 않을 수 있으므로 이식성이 가장 낮습니다.
답변4
cat
다음은 결과 뒤에 파일 이름이 인쇄되는 것을 방지하는 를 사용하는 솔루션입니다 .
cat /usr/share/dict/words | wc -w