2013-05-30 1 views
0

Я создал сценарий оболочки, который будет читать текстовый файл и найдет размер файла. Проблема заключается в том, что он не дает общий размер файла.Shell Script Issue не может найти общий размер

Например, когда я исполняю ./sushant7.sh я получаю:

Size is 4.0K lesurvey1 
Size is 4.0K tbbsr11d1def 
Size is 4.0K tbbsr11d1def 

Я хочу, чтобы получить 12k как общей которой я не в состоянии.

Моего сценарий

FILE1=/home/dev/sushanttest 

cd $FILE1 

while read file 
do 
    echo "Size is ` du -ha $file`" 

done < /home/dev/sushanttest/listing.txt 
+0

Обратите внимание, что если вы используете '-h' это будет иногда MB, другие KB .... Лучше использовать' -BK' килобайты, например. – fedorqui

ответ

3

Вы можете использовать это:

xargs du -ch < /home/dev/sushanttest/listing.txt | grep total 

Это дает все файлы в качестве аргумента к одному du вызову. Если вы повторяете себя по файлам, вам придется подвести итог себе.

+0

Спасибо, что помогли, но когда я запускаю скрипт, я получаю три результата, а просто получаю их. 12K всего 12K всего 12K итого – user2437757

+0

Я выяснил. Я сделал файл xargs du -ch $. Это сработало. благодаря – user2437757

0

Возможно, вы можете использовать переключатель -b, а также du, чтобы распечатать размер в байтах. Например:

$ du -cb FILE_GLOB | grep total | awk '{print $1}'

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