尽管我发现很多情况下都可以使用命令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 {} {} \;
在包含要拆分的文件的目录中运行上述命令。它将:
- 查找当前路径下所有名称以 开头的文本文件
a
。 - 拆分它们并保留原始的拆分文件名(以便您知道它是从哪个原始文件拆分出来的)并在其中添加字母。
- 在每个新创建的文件名末尾添加 .txt ,以便于识别文件类型。
答案2
我主要在需要将分割的部分合并在一起的情况下使用分割。在您描述的情况下,我无法想象您如何将它们合并到原始文件中。因此,如果在您的情况下不需要再次合并,我认为这个简单的命令就足够了:
cat a*.txt | split -l 20