~/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