>Не нужно писать подсуммы с перестановками на shell, в Solaris для этого
>есть Perl.
>
>du -s */* | perl -e 'while (<>) { ($s,$d1, $d2) = split /[\s\/]+/; $size{$d2}{$d1} = $s; $size{$d2}{"\rTOTAL"}+= $s; } foreach $d2 (keys %size) { foreach $d1 (sort keys %{$size{$d2}}) {print "\t$d1 $d2 $size{$d2}{$d1}\n";}}'Perl - классно. Попробую разобраться.
А пока что вот что вышло (тестирую на CentOS):
find /dir1/data -maxdepth 1 -mindepth 1 -type d | cut -d/ -f4 > 1.txt;
j=`cat 1.txt | wc -l`
i=1
for i in {1,2,3}
do
CURDIR=`head -n $i 1.txt | tail -1`
du -k -s -c /dir*/data/$CURDIR
done
Теперь:
1. В Solaris нет maxdepth mindepth
2. В Solaris нет du -c
3. Не могу сделать нормальный цикл - как сделать, чтобы было не for i in {1,2,3} а for i и количество циклов раное j
4. Пока разбираюсь с этим - следующим пунктом народу захотелось, чтобы ещё напротив каждого каталога стояла время последней его модификации.
Я понимаю, что надо что-то типа ls -lc, но как бы одну дату вытащить без всей мишуры?
Или опять заталкивать в файл и обрезать?