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(예 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

관련 정보