wc를 실행하고 단어 수만 표시

wc를 실행하고 단어 수만 표시

~/dictwords.txt나는 파일에서 발견된 단어의 수를 포함하는 파일을 생성하려고 했습니다 /usr/share/dict/words.

이미 파일을 만든 다음 잘못했기 때문에 파일을 제거했습니다. 원래 echo 명령을 수행했습니다. 그러다가 이 명령을 시도해보고 내가 옳았다고 생각해서 너무 기뻤습니다.

wc -w /usr/share/dict/words > ~/dictwords.txt

여전히 틀렸습니다. 파일 이름 없이 번호만 가지고 있어야 합니다.

답변1

기본적으로 wc파일 이름과 함께 결과를 인쇄합니다. 결과만 원하는 경우 wcstdin에서 읽기 입력을 수행해야 합니다.

</usr/share/dict/words wc -w > ~/dicwords.txt

현재 솔루션에서는 다른 도구를 사용하여 , , ... wc등 의 결과만 얻을 수 있습니다 .cutawkgrep

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

관련 정보