История изменений
Исправление Zmicier, (текущая версия) :
find . -name '*' -printf '%Ad-%Ab %s\n' | awk 'NR==1 {print "DATE\tQUANTITY\tSIZE"}{a[$1]+=$2;b[$1]+=1;}END{for(i in a)print i"\t"b[i]"\t"a[i]/1024}'
Это же подход в целом совершенно верный, однако во-первых, я что-то сомневаюсь, что вам нужно группировать файлы именно по дате последнего доступа. По дате создания их группировать вовсе невозможно, поскольку она, скорее всего, у вас нигде не хранится, но можно по дате изменения.
Ну и переписать это все почище не помешало бы:
#!/bin/bash
cd "$1" || exit 1
find -printf '%TY-%Tm-%Td %s\n' |\
gawk 'BEGIN {
OFS="\t";
print "DATE", "COUNT", "SIZE";
};
{
count[$1]++;
size[$1] += $2;
};
END {
for (i in count)
print i, count[i], size[i];
};'
Что у вас тут не работало, я не знаю; возможно, у вас там более чем за год файлы были.
Исправление Zmicier, :
find . -name '*' -printf '%Ad-%Ab %s\n' | awk 'NR==1 {print "DATE\tQUANTITY\tSIZE"}{a[$1]+=$2;b[$1]+=1;}END{for(i in a)print i"\t"b[i]"\t"a[i]/1024}'
Это же подход в целом совершенно верный, однако во-первых, я что-то сомневаюсь, что вам нужно группировать файлы именно по дате последнего доступа. По дате создания их группировать вовсе невозможно, поскольку она, скорее всего, у вас нигде не хранится, но можно по дате изменения.
Ну и переписать это все почище не помешало бы:
cd "$1" || exit 1
find -printf '%TY-%Tm-%Td %s\n' |\
gawk 'BEGIN {
OFS="\t";
print "DATE", "COUNT", "SIZE";
};
{
count[$1]++;
size[$1] += $2;
};
END {
for (i in count)
print i, count[i], size[i];
};'
Что у вас тут не работало, я не знаю; возможно, у вас там более чем за год файлы были.
Исправление Zmicier, :
find . -name '*' -printf '%Ad-%Ab %s\n' | awk 'NR==1 {print "DATE\tQUANTITY\tSIZE"}{a[$1]+=$2;b[$1]+=1;}END{for(i in a)print i"\t"b[i]"\t"a[i]/1024}'
Это же подход в целом совершенно верный, однако во-первых, я что-то сомневаюсь, что вам нужно группировать файлы именно по дате последнего доступа. По дате создания их группировать вовсе невозможно, поскольку она, скорее всего, у вас нигде не хранится, но можно по дате изменения.
Ну и переписать это все почище не помешало бы:
#!/bin/bash
find -printf '%TY-%Tm-%Td %s\n' |\
gawk 'BEGIN {
OFS="\t";
print "DATE", "COUNT", "SIZE";
};
{
count[$1]++;
size[$1] += $2
};
END {
for (i in count)
print i, count[i], size[i];
};'
Что у вас тут не работало, я не знаю; возможно, у вас там более чем за год файлы были.
Исходная версия Zmicier, :
find . -name '*' -printf '%Ad-%Ab %s\n' | awk 'NR==1 {print "DATE\tQUANTITY\tSIZE"}{a[$1]+=$2;b[$1]+=1;}END{for(i in a)print i"\t"b[i]"\t"a[i]/1024}'
Это же подход в целом совершенно верный, однако во-первых, я что-то сомневаюсь, что вам нужно группировать файлы именно по дате последнего доступа. По дате создания их группировать вовсе невозможно, поскольку она, скорее всего, у вас нигде не хранится, но можно по дате изменения.
Ну и переписать это все почище не помешало бы:
#!/bin/bash
find -printf '%TY-%Tm-%Td %s\n' |\
gawk 'BEGIN {
OFS="\t";
print "DATE", "COUNT", "SIZE";
};
{
count[$1]++;
size[$1] += $2
};
END {
for (i in count)
print i, count[i], size[i];
};'
Что у вас тут не работало, я не знаю; возможно, у вас там более чем за год файлы было.