Ubuntu终端-使用gnu parallel读取文件夹中所有文件中的行

豆柜台

我正在尝试计算Ubuntu下一个非常大的文件夹中所有文件的行数。

这些文件是.gz文件,我使用

zcat * | wc -l

计算所有文件中的所有行,这很慢!

我想将多核计算用于此任务,并发现有关Gnu并行的信息,

我试图使用此bash命令:

parallel zcat * | parallel --pipe wc -l

而且内核并非全部正常工作,我发现作业开始可能会导致大量开销,并尝试使用批处理

parallel -X zcat * | parallel --pipe -X wc -l

没有改善,

鉴于它们都是.gz文件,并且在对行进行计数之前需要解压缩,因此如何使用所有核心对文件夹中的所有文件中的行进行计数(此后不需要保持未压缩状态)

谢谢!

马克·谢切尔

如果您有150,000个文件,则可能会遇到“参数列表太长”的问题您可以这样避免:

find . -name \*gz -maxdepth 1 -print0 | parallel -0 ...

如果您想在行数旁边添加名称,则必须echo自己命名,因为您的wc进程只会从中读取内容,stdin而不会知道文件名:

find ... | parallel -0 'echo {} $(zcat {} | wc -l)'

接下来,我们要提高效率,这将取决于您的磁盘的能力。也许parallel -j2然后尝试一下,parallel -j4看看在您的系统上有什么用。


正如Ole在注释中有帮助地指出的那样,您可以避免使用GNU Parallel--tag选项标记输出行来输出要计算其行数的文件的名称,因此这样做效率更高:

find ... | parallel -0 --tag 'zcat {} | wc -l'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

linux下使用python通过终端统计文件夹中所有文件的行数

如何通过使用终端或脚本隐藏文件夹中的所有文件

使用python,终端命令(ubuntu)和文件夹属性的不同大小的文件夹

使用终端命令(ubuntu)和文件夹属性的不同大小的文件夹

使用 Google Chrome [MacOS;] 输入网站的输入并为文件夹中的所有文件生成输出;终端]

使用终端命令使用imagemagick将徽标批量添加到文件夹中的所有图像

终端中的“ ls”命令显示所有文件和文件权限。如何使用仅显示普通文件和文件夹的“ ls”恢复正常?

如何使用Groovy读取文件夹中的所有文件并替换文件中的模式

如何使用终端复制文件夹中的特定文件

如何使用终端命令从文件夹中打开文件

如何使用终端以递归方式删除所有.svn文件夹?

如何使用终端在Ubuntu中旋转屏幕?

如何使用Java从文件夹中的所有文件中读取数据?

Matlab,使用循环使用xlsread读取文件夹中的所有文件

如何使用终端在ubuntu中安装.deb文件?

如何使用spring-batch和MultiResourceItemReader读取文件夹中的所有文件?

如何使用C读取文件夹中的所有文件

使用 pandas 读取子文件夹中的所有文件

Nautilus:使用tmux时在终端中打开文件夹

Spring Batch如何使用PathMatchingResourcePatternResolver从文件夹及其所有子文件夹中读取所有json文件

在Linux中使用CLI更改文件夹中所有文件扩展名

使用PHP从文件夹中删除所有文件?

无法使用ubuntu终端解压缩文件

使用终端在Ubuntu中移动特定大小的文件

如何使用终端 Ubuntu LTS 18.4.4 删除任何文件

使用imageio.readvol()从文件夹中读取所有图像(jpg)

如何在Mac上使用终端添加文件夹的第二个所有者?

遍历文件夹并使用文件夹名称顺序重命名每个文件夹中的所有文件

使用 Ubuntu 18.04 的实时会话如何访问安装了 Ubuntu 18.04 的磁盘中具有 root 权限的所有文件夹。