Csv Ansible:如何通过删除标题来组装文件?

Csv Ansible:如何通过删除标题来组装文件?,csv,ansible,Csv,Ansible,我们有多个csv文件要根据需要连接。每个csv文件都包含头文件,我们无法更改它们,因为它来自源文件。我有那么多的片段要组合 示例CSV1 示例CSV2 需要最终输出 我正在尝试使用Ansible剧本 上面的组装工作得很好,但是每次都包含头文件。我希望在按照预期的输出组合所有片段之后,只有一个头。如何在ansible中高效地执行此操作?我可以想出一种方法来循环文件并执行,但是我的方法在100个文件上执行效率很低汇编模块确实不是语义合并文件的正确工具,也就是说,以一种取决于文件内容的方式合并文件。解

我们有多个csv文件要根据需要连接。每个csv文件都包含头文件,我们无法更改它们,因为它来自源文件。我有那么多的片段要组合

示例CSV1

示例CSV2

需要最终输出

我正在尝试使用Ansible剧本

上面的组装工作得很好,但是每次都包含头文件。我希望在按照预期的输出组合所有片段之后,只有一个头。如何在ansible中高效地执行此操作?我可以想出一种方法来循环文件并执行,但是我的方法在100个文件上执行效率很低

汇编模块确实不是语义合并文件的正确工具,也就是说,以一种取决于文件内容的方式合并文件。解决问题的最简单方法是停止在所有片段文件中放置头

如果不选择删除标题行,Ansible最简单的解决方案可能是编写一个自定义模块来处理它,使用csv模块解析所有片段,然后使用csv.writer或类似工具生成输出


您可以使用几种黑客解决方法。例如,在组装文件后,可以运行use-command:block在文件上运行sed-i'2,${/^hostname/d}。

感谢您的快速响应。ansible中任何现有的方法我都可以使用;比如放一个省略过滤器什么的?否则我喜欢你的sed理念
hostname,ip,zone
host1,1.3.2.4,EU
host2,1.3.2.5,EU
hostname,ip,zone
host32,8.3.2.4,US
host22,8.3.2.5,US
hostname,ip,zone
host1,1.3.2.4,EU
host2,1.3.2.5,EU
host32,8.3.2.4,US
host22,8.3.2.5,US
- assemble:
    src: /home/mycsvDirectory
    dest: /home/newCSV/mycombined.csv