将文件追加到 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
我有一个远程文件(实际上是两个),我希望将其连接到另一个远程文件。我想在 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