Bash:如何列出 n 个随机文件(不是头或尾)

Bash:如何列出 n 个随机文件(不是头或尾)

我有一个包含大量类似文件的大型目录。我必须发送一些随机文件进行审核。这些文件不应位于顶部或底部(例如,不在head或中tail)。这是我正在努力的子流程。

我想要获取任意数量的文件。可能是 10 个、2 个或 3 个,但不应按任何顺序排列。

例如从此文件列表:

10 1121231243 12 3124234ewdf 31243345 xaa 112 1121231243214 3 3124234ewdffd 3124334532 xab 1121 112123124321442334 3124 31243 3124334532324 xac 112123 1121ewszf 3124234 312433 file1

我想获得像本例这样的随机子集:

1121 112123124321442334 3124 1121ewszf

答案1

使用随机sort-R--random-sort)然后headtail

ls | sort -R | head -10

答案2

您可以使用sort -R随机对列表进行排序,然后使用$RANDOM变量来head获取随机数的结果:

ls | sort -R | head -n $(( $RANDOM % 10 + 1 ))

您将获得 10 个或更少的结果(绝不会是零)

相关内容