将文件追加到 Bash 中的无重定向(“>>”)的文件

Append file(s) to a file without redirection (">>") in Bash

我有一个远程文件(实际上是两个),我希望将其连接到另一个远程文件。我想在 Ansible 中使用命令模块而不是 shell 模块。因此我不能使用 >>(或 |&& 等)。

问题是双重的:是否有模块(或组合)可以为我做这件事?

如果没有,是否有 bash 命令可以为我执行此操作?

我从 this question 得知 sed -i "$ a some text" somefile.txt 将附加一行文本。

一个假设的命令来说明:

append -in /my/remote/file -in /my/remote/file2 -out /my/remote/dst

使用 GNU sed,您可以使用就地编辑和 r command:

sed -i '$r file2' file

file 的最后一行将附加(r for "read")file2.

的内容

至于 Ansible 模块,我对 Ansible 一点都不了解,但是 blockinfile 可能有用吗?

不确定您的要求是否将所有文件合并到一个文件夹中。如果是这样,你可以使用下面的代码

- name: Assemble from fragments from a directory
  assemble:
   src: /my/remote/
   dest: /my/remote/dst
Initial:
# ls
file1  file2
# cat file1
this is file1
# cat file2
this is file2

After running playbook:
# cat dst
this is file1
this is file2