一次分割多个文件

一次分割多个文件

尽管我发现很多情况下都可以使用命令split将文件拆分成多个部分,但我还是没有找到一种方法来split大规模拆分一组文件。

例如,我有一个文件夹,里面有数百个以字符“a”开头并以“.txt”结尾的文件。我怎样才能split用一行代码将所有这些文件拆分成最多 20 行文本的部分?例如:

split -l 20 a*.txt 

不起作用,因为split给出了

extra operand "filename" error.

谢谢

答案1

这将完成这项工作:

find . -maxdepth 1 -type f -name 'a*.txt' -exec split --additional-suffix=.txt -l 20 {} {} \;

在包含要拆分的文件的目录中运行上述命令。它将:

  1. 查找当前路径下所有名称以 开头的文本文件a
  2. 拆分它们并保留原始的拆分文件名(以便您知道它是从哪个原始文件拆分出来的)并在其中添加字母。
  3. 在每个新创建的文件名末尾添加 .txt ,以便于识别文件类型。

答案2

我主要在需要将分割的部分合并在一起的情况下使用分割。在您描述的情况下,我无法想象您如何将它们合并到原始文件中。因此,如果在您的情况下不需要再次合并,我认为这个简单的命令就足够了:

cat a*.txt | split -l 20

相关内容