在管道

时间:2016-08-01 07:32:48

标签: bash unix split find

我最近一直在处理拆分大文件并进一步处理它们。

我目前的管道非常简单>

find .  -type f -size +100M | split -b 100M

但这样做并不完全是我所追求的。我想将命名与输入文件类似的拆分文件拆分为函数,例如> find的输入是>

file1
file2
file3

我想输出例如

的行
file101 file102 ...
file201 file202 ...
file301 file302 ...

我尝试使用>

split -b 100M -d $(find .  -type f -size +1000M) $(find .  -type f -size +1000M) 

但是它没有按照我的意愿工作,它会引发错误!

感谢。

1 个答案:

答案 0 :(得分:0)

split不会从标准输入中读取文件名。您必须将文件名作为参数。您可以使用-exec find选项执行此操作。使用{}占位符替换输入文件和输出前缀参数的文件名。

find .  -type f -size +100M -exec split -b 100M -d {} {} \;