Я пытаюсь обернуть голову вокруг создания отчета на основе этих данных
(просто образец файла input.txt)
drwxrwxrwt 98 root root 528384 2020-04-07 13:38:14 .
drwxr-xr-x 26 root root 4096 2018-09-04 10:50:29 ..
drwx------ 2 pmp099 students 4096 2020-03-03 20:57:31 appInsights-nodeAIF-44c3af9-8e69-4462-ab49-4191e6ad1916
-rw------- 1 mce237 students 199 2020-03-01 18:41:59 .build1276786824731864129.log
-rw------- 1 mce237 students 199 2020-03-01 20:18:42 .build291177188595028335.log
-rw------- 1 mce237 students 199 2020-03-01 20:10:44 .build4195866878600813549.log
-rw------- 1 mce237 students 199 2020-03-01 20:08:55 .build4503681510908034369.log
-rw------- 1 ce237 students 199 2020-03-01 18:18:44 .build4964061885086964943.log
Это вывод, к которому я стремлюсь
user: mjy610
dirs: 3
user: hrb980
files:
all/hidden: ( 195 / 2 )
dirs: 3
file storage: 76235 B
user: pdq039
dirs: 3
user: zqu051
files:
all/hidden: ( 452 / 0 )
file storage: 652583 B
user: mce237
files:
all/hidden: ( 52 / 12 )
dirs: 4
file storage: 2729344 B
user: dad980
files:
all/hidden: ( 4 / 1 )
dirs: 3
file storage: 6614 B
Теперь это код, который у меня есть до сих пор
#!/usr/bin/awk -f
$1 ~ /^-/ && $8 ~ /^./ {totalFiles+=1;}
$8 ~ /^\.[[:alpha:]]{3,}../ {totalHidenFiles+=1;}
$1 ~ /^d/ {totalDirectories+=1;}
$1 ~ /^srw/ {totalOtherFiles+=1}
FNR > 1 {users[$3] }
{
totalStorage+=$5
#userFiles[$3]=$1
}
END {
for (u in users) {totalUsers++;
print u}
print "\nTotal Users: ", totalUsers
print "Total Files: "
print "\tall/hidden: " "(", totalFiles " / ", totalHidenFiles ")"
print "Total Directories: ", totalDirectories
print "Total Storage: "totalStorage " b"
print "Total Other Files: ", totalOtherFiles
}
То, что я пытаюсь выяснить, как это сделать, это создать ассоциативный массив снаружи, скажем, для пример
totalUserFiles[$3]+=$1
, а затем регулярное выражение, используя то же выражение сверху в моем коде, но только для указанного пользователя c. некоторые рекомендации о том, как это сделать, было бы хорошо. Любой совет, если мой подход к этому хорош или нет.
Я бы предположил, что приращения будут в блоках END, не так ли?