【发布时间】:2012-06-01 06:45:01
【问题描述】:
可能重复:
How can I replace lines in a text file with lines from another file based on matching key fields?
我想合并以下文件,我希望 FileB.txt 的内容覆盖有共同行的 FileA.txt,但我不想用 FileB.txt 完全替换 FileA.txt。
例如:
文件 A:
# cat FileA.txt
interface.1.type = ethernet
interface.1 = A
interface.1.ip = 192.168.1.1
interface.1.netmask = 255.255.255.0
interface.1.dhcp = false
文件 B:
# cat FileB.txt
interface.1 = B
interface.1.ip = 192.168.1.1
interface.1.netmask =
interface.1.dhcp = true
interface.1.dhcp.range = 192.168.1.1,192.168.1.15
interface.1.extraline =
在这种情况下 合并结果应该是:
# cat FileA.txt
interface.1.type = ethernet
interface.1 = B
interface.1.ip = 192.168.1.1
interface.1.netmask =
interface.1.dhcp = true
interface.1.dhcp.range = 192.168.1.1,192.168.1.15
interface.1.extraline =
因此,应检查每行“=”之前的任何内容,并在 FileA.txt 和 FileB.txt 之间进行匹配。如果 FileB.txt 上的 '=' 之后的任何内容与 FileA.txt 不同,则 FileB.txt 中的任何内容都应写入 FileA.txt。
【问题讨论】:
-
这不是我想用 bash 写的东西...
标签: bash properties merge match