如何获得文件夹中文件总数的20%?

时间:2018-01-09 09:13:56

标签: bash shell

我使用shell来计算文件夹的数字文件。例如,文件夹A有100个文件,我只想显示20%的文件,它必须是整数,意思是20.这是我的代码,但它是失败的

file_num= find . -type f | wc -l
prob_select=0.2
file_num=$(expr $file_num \* $prob_select)
file_num=$( printf "%.0f" $file_num)

2 个答案:

答案 0 :(得分:3)

对于一个更简单的方法,它显示每个 n 文件,而不是要求您在决定显示哪些文件之前知道有多少文件,

find . -type f | awk -v factor=5 'NR%factor == 0'

答案 1 :(得分:2)

您不能使用bash中的浮动数字,但尝试转换20% - > 0.2 - > 2/10 - > 1/5,所以: file_num=$(($(find . -type f | wc -l) / 5)); echo "${file_num}"

您将获得20%找到的文件的数量。 接下来,只需运行find . -type f | head -n "${file_num}"