linux - 在 linux 中打印文件目录以及存储空间和用户标识

标签 linux awk directory

我正在尝试按目录打印出用户的详细信息以及总存储消耗组。以下是我到目前为止编写的代码片段。

find $1 -atime +$2 -size +$3M -type f -exec ls -lu --block-size=MB \
{} \; | awk '{print $3, $4, $5, $6, $7, $8, $9}' | awk '
{ a[$1] += $3 }
END {
for (i in a) {
  printf "%-15s\t%s\n", i, a[i];
}
}'

上面的代码打印用户 ID 和总存储消耗。

下面是上面代码的示例输出

user1     500MB

但是我也想打印目录信息以及特定目录的存储消耗

所以让我们把输入当作

user1    100 MB   /dir1/dir2/dir3/dir4/file1
user1    100 MB   /dir1/dir2/dir3/dir4/file2
user1    150 MB   /dir1/dir2/dir3/dir5/file1
user1    150 MB   /dir1/dir2/dir3/dir5/file2

我要显示的输出是

user1         200 MB  /dir1/dir2/dir3/dir4
user1         300 MB  /dir1/dir2/dir3/dir5

有人可以帮我实现这个吗?

最佳答案

优化find + numfmt解决方案:

find $1 -atime +$2 -size +$3M -type f \
-printf "%-15u\t%kK\t%p\n" | numfmt --field=2 --from=iec --to=iec -d$'\t'

关于linux - 在 linux 中打印文件目录以及存储空间和用户标识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48883870/

相关文章:

linux - 默认情况下,zipcloak 将临时文件放在哪里?

regex - grep那些包含单引号的匹配行

linux - Windows 文件命名问题

linux - Awk 命令行将参数编写为变量以搜索特定字段

c# - 在 WP7 和 8 上递归删除 IsolatedStorage 中的目录的简便方法

Jupyter 中的 R 内核使用了错误的目录

python - 从linux中的字符串列表中扫描数据

python - 根据标签拆分文件 - grep、sed?

linux - 从 bash 循环中的文件中提取第 n 行

java - File.listFiles() 和区分物理文件夹和虚拟文件夹