2012-02-05 2 views
1

텍스트 파일의 폴더가있는 경우 배쉬 명령을 사용하여 파일 당 평균 단어를 얻는 방법은 무엇입니까?파일 당 평균 단어 수

내가 파일 당 단어를 얻을 wc -w를 사용할 수 있다는 것을 알고,하지만 난 모든 파일에서 단어의 총 수를 얻을, 다음 텍스트의 숫자로 해당 번호를 분할하는 방법을 확실 해요는

+0

'wc -w * | grep total'은 당신을 시작할 것입니다 ... 거기에서 어디로 가야할지 모르겠습니다. 행운을 빕니다! –

답변

5

이 명령은 파일 시스템을 반복적으로 탐색하고 모든 단어와 파일을 계산합니다. 마지막으로 전체 단어 수를 파일 수로 나눕니다.

find . -type f -exec wc -w {} \; | awk '{numfiles=numfiles+1;total += $1} END{print total/numfiles}' 
1

을 파일

cat *.txt | wc -w 

와 파일 번호로 : 다음과 같은 방법으로 총 단어 수를 얻을 수

ls *.txt | wc -l 

그런 다음 당신이 그들을으로 나눔 수 있습니다.

0

황의 솔루션은 매우 좋지만 모든 디렉토리에서 오류가 발생합니다. 그리고 분열은 쉘의 모든 산술 연산이 정수형이기 때문에 약간의 고통입니다. 다음은 원하는 작업을 수행하는 스크립트입니다.

 
#!/bin/sh 

for file in *; do 
    test -f "$file" || continue 
    c=$(wc -w "$file" | awk '{print $1}') 
    : $((total += $c)) 
    : $((count += 1)) 
done 

echo $total $count 10k/p | dc | sed 's/0*$//' 

하지만 멧새의 awk 솔루션이 좋습니다.