Ускорение поиска команды - PullRequest
       48

Ускорение поиска команды

0 голосов
/ 10 декабря 2018

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

file_cnt[$i]=$(find $dir_name -type f -ctime +$ctime1 -ctime -$ctime2 | wc -l)
file_size[$i]=$(find $dir_name -type f -ctime +$ctime1 -ctime -$ctime2 | xargs --no-run-if-empty --max-procs=2 du -s | awk '{sum += $1} ; END {printf "%.2f", sum/1024**2}')

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Я бы предложил использовать find для возврата размеров файлов и awk для суммирования и подсчета файлов:

$ find $dir_name -type f -ctime +$ctime1 -ctime -$ctime2 -printf "%s\n" | awk '{s+=$1}{print NR,s}'
0 голосов
/ 10 декабря 2018

попробуйте что-то вроде этого

read "file_cnt[$i]" "file_size[$i]" << EOF
$(find $dir_name -type f -ctime +$ctime1 -ctime -$ctime2 | xargs --no-run-if-empty --max-procs=2 du -s | awk '{count++;sum += $1} ; END {printf "%d %.2f", count, sum/1024**2}')
EOF
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...