Bash 如何将一个文件连接到不同目录中的文件列表中?
我在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>>“{}”\
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”“{}\代码>。您的命令将愉快地创建一个名为{}
的文件,该文件将包含找到的文件:)
的相同数量的fileBaseFile
副本。请记住,重定向可以写入任何位置(只有它们的相对位置才重要)。因此,您的命令将具有与相同的效果,例如,find-键入f-名称“文件*”-exec cat BaseFile\;>>“{}”
。