Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 打印最大文件的大小和平均文件大小_Linux_Bash_Shell - Fatal编程技术网

Linux 打印最大文件的大小和平均文件大小

Linux 打印最大文件的大小和平均文件大小,linux,bash,shell,Linux,Bash,Shell,嘿,所以我有一个最方便的方法来获得最大的文件大小,以 (此输出中的值仅作为示例。) 最大文件大小:2015 平均文件大小:1132 因此,为了获得最大的文件大小,我可能会使用以下命令 find.-type f-ls | sort-r-n-k7 | head-n1 这将打印多个属性的冗长列表,并打印其中最大的属性(基于其文件大小) 问题是,我真的找不到一种只获取实际文件大小而不获取其他内容的方法 以类似的方式,我想要得到的是平均文件大小 所以我需要找到一种方法,将所有文件的文件大小相加,然后除以文

嘿,所以我有一个最方便的方法来获得最大的文件大小,以

(此输出中的值仅作为示例。)

最大文件大小:2015
平均文件大小:1132

因此,为了获得最大的文件大小,我可能会使用以下命令

find.-type f-ls | sort-r-n-k7 | head-n1

这将打印多个属性的冗长列表,并打印其中最大的属性(基于其文件大小)

问题是,我真的找不到一种只获取实际文件大小而不获取其他内容的方法

以类似的方式,我想要得到的是平均文件大小

所以我需要找到一种方法,将所有文件的文件大小相加,然后除以文件数

要获得数字非常简单,只需一个简单的(查找。-键入f | wc-l) 更大的问题是关于总结

理想情况下,我希望解决方案的格式简单

例如,
echo“最大文件大小:$(find.-type f | command | command)”

谢谢。

最大的文件

find . -type f -printf "%s\t%p\n" | sort -nr | head -1 | cut -f1
平均文件大小

find . -type f -printf "%s\t%p\n" | awk '{sum+=$1; c++} END{print sum/c}'
当然,当您有
awk
时,没有必要重复两次

$ find . -type f -printf "%s\t%p\n" | 
  awk 'max<$1{max=$1}
             {sum+=$1; c++}
          END{print "largest: "max; print "average: " sum/c}'

largest: 74
average: 19
$find.-type f-printf“%s\t%p\n”
awk'max您可以使用cut命令只打印一行的一部分,这一行由一些delimeter分隔

对于最大的文件大小,您可以使用:

 echo "Largest file size: $(find . -type f -ls | sort -r -n -k7 | head -n 1 | cut -d' ' -f2)"
对于平均大小,有多个选项是可行的。您可以使用awk:

 echo "Average file size: $(find . -type f -ls | sort -r -n -k7  | cut -d' ' -f2 | awk '{ total += $1; count++ } END { print total /count}')"

命令
du-s
给出了磁盘使用情况的摘要。除以文件数,这是平均值。不起作用,只打印一个空命令行。剪切必须设置不正确。将尝试更深入地研究它。我的假设是,因为查找后文件之间甚至没有足够的空间Read UpPi只是编辑命令为一行,可能是从我的侧面格式化问题,因为在命令的中间有一个换行符。现在工作了吗?找到了一个解决方案,它有多个。我个人使用SED来删除所有[::BL::]字符,并在其中插入一个空格(空白)。