我有2个LDIF输出准备成一行,每个对象用“ |”分隔并且所有属性字段都已排序。 我要写的第一个字段包含dn:当第二个文件中的字段丢失或具有不同的值时。如果丢失,则需要添加标记,如果标记不同,则需要替换标记。如果所有字段都相同,则不应写入任何内容。 我的脚本具有2个循环,但可以减慢数百万行的速度。我现在正在用awk尝试此操作,但是我不知道如何比较2个文件。
文件1
dn:abc|attribut a: 10|attribut b: 11|attribut c: 12
dn:xyz|attribut a: 10|attribut b: 11|attribut c: 12
文件2
dn:abc|attribut a: 10|attribut b: 11|attribut c: 12
dn:xyz|attribut a: 10|attribut c: 11
需要的输出
dn:xyz|add attribute b: 11|replace attribute c: 12
与dn:abc相同的行在两个文件中均相同,因此未写入输出文件中。 dn:xyz行有区别,因此我需要在第一个字段中包含“ dn:xyz”。下一个字段属性a:10是相同的,所以什么也没做。文件2中缺少下一个字段,我需要“添加属性b:11”。两个文件中都有最后一个字段属性c :,但文件2中的值不同。我需要“替换属性c:12”中文件1的值。