我有一个充满子目录的目录,每个子目录中都有一些文本文件(即深度为1).
我想把所有这些文件(没有特别的顺序)放到一个文件中:
cat file1 file2.... fileN >new.txt
Run Code Online (Sandbox Code Playgroud)
是否有一个bash shell单行程序,可以列出这些目录中的所有文件并将它们传递给cat?
这个怎么样?
find . -name '*.txt' -exec cat {} \; > concatenated.txt
Run Code Online (Sandbox Code Playgroud)
当然,它会多次调用cat而不是一次,但效果是一样的.
find . -type f -print0 | xargs -0 cat
Run Code Online (Sandbox Code Playgroud)
find将递归搜索files(-type f)并将其名称打印为以null结尾的字符串(-print0).
xargs-0将从stdin 读取空终止的字符串()并将它们作为参数传递给cat
| 归档时间: |
|
| 查看次数: |
2853 次 |
| 最近记录: |