【发布时间】:2012-11-02 18:31:55
【问题描述】:
类似于我的老问题: How do I merge FileA.txt and FileB.txt giving FileB.txt overwrite power using a bash script?
我想合并两个配置值文件,我还有 fileA 和 fileB。我想要fileA中fileB中的所有行,如果两个文件中出现相同的配置键,我希望fileB中的值覆盖fileA中的值。
每一行总是以'config'开头,然后是一个键,最后是一个值。困难的部分是该值可以是带引号的字符串,带有空格以分隔多个值(请参阅“网站”值)。
我有一些使用 awk 的经验和相当多的 bash 经验,但我一辈子都想不出办法来做到这一点。感谢所有帮助。谢谢
文件A:
config lanIP 10.1.1.1
config wanIP 1.1.1.1
config wanIPMask 255.255.255.255
config website "http://google.com http://yahoo.com"
文件B:
config lanIP 192.168.1.1
config wanIP 1.1.1.1
config website "http://google.com http://yahoo.com"
config moreWebsite "http://google.com http://msn.com"
预期输出:
config lanIP 192.168.1.1
config wanIP 1.1.1.1
config wanIPMask 255.255.255.255
config website "http://google.com http://yahoo.com"
config moreWebsite "http://google.com http://msn.com"
【问题讨论】:
标签: linux bash configuration merge awk