在shell中使用split命令如何知道生成的文件数

时间:2015-07-09 22:17:27

标签: shell

我正在使用命令split生成一个大文件来生成放在文件夹中的小文件,我的问题是该文件夹包含的文件与我的文件不同。

我想知道是否有办法知道仅从我的分割生成了多少文件而不是我文件夹中所有文件的数量。 我的命令split a 2 d。我可以加入这个命令来了解它吗?

我知道这个ls -Al | wc -l会给我一些我不感兴趣的文件夹中的文件数。

3 个答案:

答案 0 :(得分:2)

这里最简单的解决方案是拆分成一个新目录。

假设不可能并且您不担心在相关目录上运行的其他进程,您可以只计算前后的文件。像这样的东西

$ before=(*)
$ split a 2 d
$ after=(*)
$ echo "Split files: $((after - before))"

如果目录中的其他文件与分割文件的格式不同(并且可能它们不能或split会失败或覆盖它们)那么您可以使用适当的文件glob只获取与模式匹配的文件。像splitfiles=(d??)这样的东西。

如果失败,您可以看到--verbose的{​​{1}}选项是否允许您使用split或类似内容。

答案 1 :(得分:0)

为了与众不同,我将使用grep选项--verbose计算行数:

split --verbose other_options file|grep -c ""

示例:

$ split --verbose -b 2 file|grep -c ""
60
# yeah, my file is pretty small, splitting on 2 bytes to produce numerous files

答案 2 :(得分:0)

您可以使用带命令-l和-a的split命令为生成的文件指定前缀和后缀。