2013-09-23 3 views
1

У меня есть набор из 10000 текстовых файлов (file1.txt, file2.txt, ... file10000.txt). Каждое из них имеет различное количество строк. Я хотел бы знать, какое среднее число строк среди этих 10000 файлов, за исключением последней строки. Например:Среднее число строк в 10000 текстовых файлах

FILE1:

a  
b  
c 
d  
last 

File2:

a  
b  
c  
last  

File2:

a  
b  
c 
d 
e  
last    

здесь я должен получить 4 как результат. Я пытался с python, но для чтения всех файлов требуется слишком много времени. Как я могу сделать это с помощью сценария оболочки?

+1

многие инструменты могут сделать это, что вы пробовали до сих пор? – Kent

+0

От http://stackoverflow.com/help/on-topic Вопросы с запросом кода должны демонстрировать минимальное понимание решаемой проблемы. Включите попытки решения, почему они не работают и ожидаемые результаты. См. Также: Контрольный список вопросов переполнения стека. – Vince

+0

Как я писал, я пытался с Python. Я не знал, что стоит записать мой код. В любом случае с помощью скрипта Python (для цикла ...) я открывал каждый файл, чтобы получить количество строк и получить среднее конечное число. Но, как я писал, требуется много времени, чтобы применить его к 10000 файлам! –

ответ

0

Вот один из способов:

touch file{1..3}.txt 

файл 1 имеет 1 линия, 2 файла две строки и так далее ...

$ for i in {1..3}; do wc -l file${i}.txt; done | awk '{sum+=$1}END{print sum/NR}' 
2 
+0

Он работает так, как вам было предложено! Мне нужно было вычесть его из суммы + = $ 1, потому что я не хочу рассматривать последнюю строку. –

Смежные вопросы