我在目录中有大量的小文本文件。我想将每100个文件合并成一个大文件。任何人都可以用Linux Shell脚本帮助我做到这一点吗?如何将每个100个文件合并到一个目录中?
回答
追加输出new.txt
cat *.txt >> new.txt
覆盖new.txt
cat *.txt > new.txt
我会假设OP会希望在答案的某个地方看到数字“100”...... – Mehrdad
下面的草图将做到这一点:
files=(*) # list of files
idx=0 # start index of actual package
len=100 # files per package
pcount=0 # package counter
while [ $idx -le ${#files[@]} ] ; do
cat "${files[@]:idx:len}" > pack${pcount} # process subarray
((idx+=len)) # start of next package
((pcount++)) # number of next package
done
结果是文件名为“pack0 ','pack1',...
只需使用“files =(*)” - 这将保留带有空格的文件名。使用'ls'这样会将带有空格的文件名分解成单独的单词。 –
谢谢,没错。另外,cat命令需要用引号来处理带有空格的文件名。 –
它很好用..非常感谢。我只需要更改为“文件=(文件夹/ *)”,并将结果放入另一个文件夹。 – user594382
如果文件可以(重新)移动,那么它相当简单:
find text_files_dir/ -name '*.txt' | \
head -n 100 | \
while read f; do cat "$f" >> big_file && rm "$f"; done
或
find text_files_dir/ -name '*.txt' | \
head -n 100 | \
while read f; do cat "$f" >> big_file && mv "$f" some_place_else/; done
,直到有没有留下更多的文本文件,你可以把它放进一个循环。
- 1. 将2个svn目录自动合并到一个目录中
- 2. 制作多个目录并将文件放到每个目录中
- 3. 如何将多个文本文件合并到一个data.frame中?
- 4. 将一个非代码文件合并到多个项目中
- 5. 如何从多个目录/文件夹合并多个文件
- 6. 如何将两个excel文件合并到一个名称中?
- 7. Elisp - >将目录中的所有文件合并到一个文件中
- 8. C#将一个目录与另一个目录合并
- 9. 将javascripts合并到一个文件中
- 10. 如何将一个.DLL文件合并到我的VB项目
- 11. 如何递归地导入目录中的每个文件并在每个文件中运行一个函数?
- 12. 如何将一个目录中的大量文件从一个目录移动到另一个目录?
- 13. 将两个文本文件合并为一个mysql表中的每个文件
- 14. 将文件从一个目录复制到另一个目录
- 15. 将文件从一个目录复制到另一个目录
- 16. 将文件从一个目录移动到另一个目录
- 17. 将文件从一个目录复制到另一个目录
- 18. 将文件从一个目录复制到另一个目录
- 19. 将文件从一个目录移动到另一个目录
- 20. 将文件从一个目录移动到另一个目录
- 21. 将文件从一个目录复制到另一个目录
- 22. 我将如何将多个目录压平并叠加到一个目录中?
- 23. 将文件合并到一个目录中,每次都附加一个换行符
- 24. 命令行在一个目录中合并多个文件?
- 25. 如何将两个maven webapps合并到一个项目中
- 26. 将几个mstest trx文件合并到一个trx文件中
- 27. 将两个XML文件合并到一个文件中
- 28. 如何将文件从一个目录移动到另一个目录
- 29. 如何将文件从一个目录移动到另一个目录?
- 30. 如何将我的文件从一个目录复制到另一个目录?
帮助:是的。写:不。 [当你为自己尝试时,你有哪个部分卡住了?](http://whathaveyoutried.com/)?分组100个文件?连接文件?写脚本? – Johnsyweb