我有几个数据文件,例如file1.dat
,file2.dat
等等。我想将它们全部组合在一个大数据文件中,以便大数据文件的内容应如下所示
content1
content2
.
.
contentN
我知道
cat file1.dat file2.dat .... >> bigfile.dat
会做这项工作但是我不想输入所有文件名。有什么命令可以做到这一点吗?
答案1
如果所有输入文件确实匹配模式file
,后跟一些数字,后跟.dat
,那么这会将所有输入文件连接在一起bigfile.dat
:
cat file*.dat >bigfile.dat
答案2
好吧,这取决于有多少文件以及使用的命名约定,但给出您的示例:
cat file[0-9].dat
content1
content2
文件(单独):
cat file1.dat
content1
cat file2.dat
content2
答案3
所以我想它们的名字不像你的例子中那样,否则你可以简单地做
cat file*.dat > bigfile.dat
因此,您需要一些方案来查找所有文件,可能使用find
.例如,如果您想将所有文件与.dat
:
find /your/search/dir -name "*.dat" -exec cat {} \; >> bigfile.dat
只要确保您没有bigfile.dat
在搜索目录中创建,否则它也会被找到find
,这是行不通的。
答案4
您可以使用 for 循环:
for (( i=1; i<=N; i++ )); do cat file"$i".dat; done > bigfile.dat