我有一个远程文件(实际上是两个),希望与另一个远程文件连接。我想在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
答案 0 :(得分:3)
使用GNU sed,您可以使用就地编辑和r
command:
sed -i '$r file2' file
在file
的最后一行上将附加r
的内容(file2
为“读”)。
对于Ansible模块,我一点都不了解Ansible,但是blockinfile可能有用吗?
答案 1 :(得分:1)
不确定您的要求是否将所有文件合并到一个文件夹中。如果是这样,您可以使用以下代码
let keys = ["AAE", "TAE"];
let result = data.response.map(val => {
keys.forEach(key => {
if (val[key] && val[key].some(x => +x.amount <= 0)) {
delete val[key];
}
});
return val;
});
let keys = ["AAE", "TAE"];
let data = {
"response": [{
"countryId": {
"id": "10050020025",
"idScheme": "externalId"
},
"processedDateTime": "2019-11-07 05:39:09",
"AAE": [{
"amount": "1000",
"currencyCode": "USD"
}],
"TAE": [{
"amount": "0",
"currencyCode": "USD"
}]
},
{
"countryId": {
"id": "10291520071",
"idScheme": "InternalId"
},
"processedDateTime": "2019-02-03 08:21:22",
"AAE": [{
"amount": "0",
"currencyCode": "USD"
}],
"TAE": [{
"amount": "-2001",
"currencyCode": "USD"
}]
}
]
};
let result = data.response.map(val => {
keys.forEach(key => {
if (val[key] && val[key].some(x => +x.amount <= 0)) {
delete val[key];
}
});
return val;
});
console.log(result);