我有一个文件列表,如何使用 bash 打开并将每个文件的内容复制到新文件中?

我有一个文件列表,如何使用 bash 打开并将每个文件的内容复制到新文件中?

我正在运行模拟,我想编写脚本来加快数据评估速度。我有一个文件列表。我使用此命令来生成它:

echo ( find "../../../Single conical/IV/" -name "current-tot.dat" ) > IVfilenames.dat

我想逐个打开它们并将它们的内容复制到一个新文件中(我们称之为 results.dat),但我不知道该怎么做。有人能帮助我吗?

答案1

echo从你的命令中去掉。我不知道你为什么一开始就把它放在那里。

find "../../../Single conical/IV/" -name "current-tot.dat" > IVfilenames.dat

然后IVfilenames.dat将会得到如下文件列表:

../../../Single conical/IV/Dir1/current-tot.dat
../../../Single conical/IV/Dir2/current-tot.dat

current-tot.dat您可以使用以下代码将列表中的所有文件编译为一个results.dat文件:

while read -r filename; do 
    cat "$filename"
done < IVfilenames.dat > results.dat

但话虽如此,去掉中间人更容易,而且根本不需要创建文件列表:

find "../../../Single conical/IV/" -name "current-tot.dat" -exec cat -- {} + > results.dat

相关内容