У меня есть 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».Последнее поле attribut c: находится в обоих файлах, но значение отличается в файле 2, мне нужно «заменить attribut c: 12» значение из файла 1.