Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何将一个文件连接到不同目录中的文件列表中?_Bash_Find_Cat - Fatal编程技术网

Bash 如何将一个文件连接到不同目录中的文件列表中?

Bash 如何将一个文件连接到不同目录中的文件列表中?,bash,find,cat,Bash,Find,Cat,我在bash中工作,我试图在不同目录中的每个文件的末尾放一个文本文件,我有 BaseFile /Dir1/File1 /Dir2/File2 /DirN/FileN 我想把BaseFile的文本放在每个File1,File2,…,FileN的末尾,覆盖它们。我试过find、cat和grep,但都没有得到我想要的结果。提前谢谢 这可能不是最优雅的,但会将BaseFile的内容附加到名称以“file”开头的任何文件中: 找到-键入f-名称“文件*”-exec cat BaseFile>>“{}”\

我在bash中工作,我试图在不同目录中的每个文件的末尾放一个文本文件,我有

BaseFile
/Dir1/File1
/Dir2/File2
/DirN/FileN

我想把BaseFile的文本放在每个File1,File2,…,FileN的末尾,覆盖它们。我试过find、cat和grep,但都没有得到我想要的结果。提前谢谢

这可能不是最优雅的,但会将BaseFile的内容附加到名称以“file”开头的任何文件中:

找到-键入f-名称“文件*”-exec cat BaseFile>>“{}”\

编辑:

正如格尼奥夫指出的那样,我完全错了。他们下面的评论正是我想要的,但失败了

find . -type f -name "File*" -exec sh -c 'cat BaseFile >> "$0"' "{}" \;

您也可以使用循环:

用于/Dir*/FILE*中的x;执行cat基本文件>>“$x”;完成

是否要将内容附加到这些文件或覆盖其内容?附加但保存在同一文件中,而不是创建新的oneNo!这不行!重定向
>
不会按照您的想法进行!也许你的意思是:
find-键入f-name“File*”-exec sh-c'cat BaseFile>>“$0”“{}\。您的命令将愉快地创建一个名为
{}
的文件,该文件将包含找到的文件
:)
的相同数量的file
BaseFile
副本。请记住,重定向可以写入任何位置(只有它们的相对位置才重要)。因此,您的命令将具有与相同的效果,例如,
find-键入f-名称“文件*”-exec cat BaseFile\;>>“{}”