여러 파일에서 단어 개수를 어떻게 나열합니까?


9

각 파일에 단어 'work'가 포함 된 단어가 몇 개인 지 알아야한다고 가정 해 보겠습니다.

나는 'work'이있는 파일을 찾으려면 다음과 같습니다 ls work. 그리고 단어의 수를 알아 내려면wc -w

그러나 나는 이것을 시도했고 모든 파일에 결합 된 단어 수가 아닌 파일 수를 표시하는 것 같습니다 (필요한).

ls work | wc -w

따라서 'work'사전 요구 사항을 따르는 14 개의 파일이 있으면 단어 수가 아니라 14를 표시합니다.

답변:


17

구문은 wc -w [FILE]입니다. FILE을 사용하지 않고 출력에 파이프를 사용하면 ls workstdin에서 읽은 내용 만 계산합니다.

텍스트 자체를 파이프해야합니다.

cat *work* | wc -w

대안으로 실행할 수 wc있습니다 find -exec. 그러나 파일 수가 많으면 여러 번 find호출 되는 "전체"합계가 여러 개 표시 될 수 wc있습니다.

find ./ -type f -name "*work*" -exec wc -w {} +

find또한 명령을 사용 하여을 사용하여 줄 수를 요약 할 수있었습니다 wc -l. 놀랄 만한!
cody.codes

3

wc여러 파일로 실행할 수 있으며 쉘 내장 기능을 사용 *하여 작업 디렉토리의 모든 숨겨진 파일을 wc매개 변수에 추가 할 수 있습니다.

wc -w *work*

디렉토리의 이름이 포함 된 경우 work다음이가 STDERR을 리디렉션하는 것 error..a 해킹과 함께 출력을 보여줍니다 2>/dev/null처럼 당신이 뭔가를 사용해야 ..although find.. 파일 만 가져
heemayl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.