我有一个约2000个文件的目录.如何N通过使用bash脚本或管道命令列表来选择随机的文件样本?
如何使用Red Hat Linux上的标准工具随机化文件中的行?
我没有shuf命令,所以我正在寻找像完成相同任务的一个perl或awk一个班轮的东西.
我在linux中有一些文件.例如2,我需要在一个文件中混洗文件.
例如
$cat file1
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
Run Code Online (Sandbox Code Playgroud)
和
$cat file2
linea one
linea two
linea three
linea four
linea five
linea six
linea seven
linea eight
Run Code Online (Sandbox Code Playgroud)
后来我改变这两个文件,我可以得到类似的东西:
linea eight
line 4
linea five
line 1
linea three
line 8
linea seven
line 5
linea two
linea one
line 2
linea four
line 7
linea six
line 1
line 6
Run Code Online (Sandbox Code Playgroud) 我有一个列表,我用随机的shuffle函数(random.shuffle)
但是,Python参考说明:
注意,即使相当小
len(x),x的排列总数也大于大多数随机数生成器的周期; 这意味着永远不会产生长序列的大多数排列.
现在,我想知道这个"相当小的len(x)"意味着什么.100,1000,10000,......
我想在Linux中随机播放一个包含数百万行字符串的大文件.我试过'sort -R'但它很慢(16M大文件需要50分钟).是否有更快的实用程序,我可以使用它代替它?
我编写了一个 shell 脚本,它使用一些 BASH 特定命令,例如[[ ... ]]. 我知道某些 BASH 功能仅在 BASH 4 或更高版本中可用。如何在不尝试多个不同版本的情况下找出该脚本需要哪个版本的 BASH?
有没有某种工具可以检查所需的最低版本?
源代码可在 GitHub 上获取:https://github.com/JEFF-Media-GbR/RandomRound/blob/master/randomround
我正在尝试创建一个简单的 Shell 脚本,其中涉及从当前工作目录中选择一个随机目录,然后导航到该目录。
谁能说明如何列出所有目录,并从该列表中随机选择一个?
我试图避免将所有目录列出到文本文件中,而只是从该文件中选择随机行(这很简单)。
我最初的尝试包括使用ls -d */命令仅列出目录。该命令在输入终端时有效,但返回错误:
ls: */: No such file or directory
Run Code Online (Sandbox Code Playgroud)
当我尝试将其实现到这个脚本中时:
DIR_LIST=` ls -d */`
echo "$DIR_LIST"
Run Code Online (Sandbox Code Playgroud) 我正在处理一个大约12*10 ^ 6行的文本文件,它存储在我的硬盘上.该文件的结构是:
data|data|data|...|data\n
data|data|data|...|data\n
data|data|data|...|data\n
...
data|data|data|...|data\n
Run Code Online (Sandbox Code Playgroud)
没有标题,并且没有唯一标识行的ID.
由于我想将它用于机器学习目的,我需要确保文本文件中没有可能影响随机学习的顺序.
通常我会将这种类型的文件上传到内存中,然后在将它们重写到磁盘之前对其进行随机播放.不幸的是,由于文件的大小,这次不可能,所以我必须直接在磁盘上管理洗牌(假设我没有磁盘空间的问题).关于如何有效地(尽可能低的复杂性,即写入磁盘)使用Python管理这样的任务的任何想法?
由于ls按字母顺序返回文件,有没有办法以随机顺序返回相同的文件?我试图循环遍历目录中的所有文件,但希望它在单独的运行中有所不同。
for i in *.py # Would like order to be random
do
...
done
Run Code Online (Sandbox Code Playgroud)