awk - 比较 2 个文件中的字段并仅写入缺失或不同的字段
问题描述
我准备了 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 中的值。
解决方案
推荐阅读
- vue.js - 模拟函数在 Vue 测试中没有返回值
- python - 如何处理棋盘格中的鼠标光标移动事件?
- c# - RabbitMq like 与 Masstransit 的话题交流
- powerapps - 共享 Power App 时无法将安全角色分配给 Dataverse 表
- python - 使用列表作为函数的参数
- java - Spring Batch JpaTransactionManager 会影响 Spring Data JPA?
- python - 我不会在我的游戏石头,纸和剪刀中输
- oauth2-playground - 多个并发访问代码请求/上传
- php - MySQL - 按星期几比较几个月的数据 - 例如每个月的第一个星期六的会话
- swift - 如何在 Xcode 13 中使用图像文字