SheepDev

文本与正则表达式

找出两份列表中新增和删除的项目

使用工具

比较昨天与今天的列表,或计划创建与实际创建的 ID 时,关键是属于哪份列表,而不是在哪一行。文本差异显示大量移动时,集合比较可能更适合问题。

每行输入一项,可得到并集、交集、左减右与右减左。无需只背数学术语:把左侧定为计划、右侧定为实际,再用工作中的问题理解结果。

计划三项、实际三项,却不相同

左:计划
alpha
beta
gamma
右:实际
gamma
beta
delta

两边都是三行,成员却不同。交集为 beta、gamma;计划独有的左减右为 alpha;实际独有的右减左为 delta。总数相同不能证明没有遗漏。按成员比较,比对照相同行位置更直接。

并集把任一侧出现的项各列一次,得到 alpha、beta、gamma、delta 四种。三加三不等于六个不同成员,因为共同两项只算一次,这不同于直接拼接列表。

差集有方向

只说“差异是 alpha”无法说明缺失还是多出。左计划右实际时,左减右是未登记候选,右减左是计划外候选。交换输入也会交换意义。分享时应注明两侧角色与时间。

称为候选,是因为不在列表中不一定就是故障。采集时间、期间或过滤条件不同也会产生差异。工具只知道输入列表,核对前应统一范围与截止时间。

同一 ID 出现两次,集合仍算一种

左侧含重复项的输入
alpha
alpha
beta
右侧输入
alpha
beta

两方向差集都为空。alpha 虽是两次对一次,但不同成员相同。库存、订单或事件次数涉及数量,仅此结果不够。差集为空不证明数量相等。

顺序变化同样不改变成员,alpha、beta 与 beta、alpha 是同一集合。步骤顺序、排名或优先规则应使用文本差异。区别在于如何定义相同,而非哪个工具更强。

比较前会去除空行与首尾空格

工具比较前去除首尾空白并排除空行,因此带外部空格的 alpha 会匹配 alpha。对粘贴列表方便,但不适合把空格当标识内容的情况。检查原文精确一致应使用不忽略空白的文本差异。

它不会统一内部空格、全半角或所有 Unicode 形式。外观相似却仍有差异时,可检查码点。未查原因就全部小写或删符号,可能误合并不同 ID。

忽略大小写前,先确定身份规则

左 Alpha、右 alpha 通常是不同项,开启忽略大小写后会匹配。这只是比较设置,不会自动发现原系统的 ID 规则。若原系统区分大小写,不能依据忽略后的结果登记或删除。

输出保留的拼写不是权威标准 ID,要统一表记应核对正式台账。工具也不推测读音、简称、同义词或人物商品身份。实体匹配与已统一 ID 的集合比较不同。

交叉检查四种结果

首例中左独有一项、共同两项、右独有一项,合为四项并集。左三种分成一独有加两共同,右侧同理。用比较规则处理后的不同成员数,而非原始行数,检查理解是否正确。

报告应保留条件和方向,例如“同一期间,去空行和首尾空格后,计划独有 alpha、实际独有 delta”。回原系统只核查这些项可缩小工作范围。工具不登记或删除,原因和处理仍按运维流程判断。

数量相同不代表成员相同

计划 A、B、C,完成 A、C、D,两边都是三项。只看数量会漏掉 B 未处理与 D 意外处理。计划减实际是 B,实际减计划是 D;并集 A、B、C、D,交集 A、C。集合说明成员关系,不说明成功原因或执行时间。

计划 A、A、B,实际 A、B,集合相等,但无法判断 A 是否应执行两次。商品数量、请求和付款次数重视重复次数,应使用每次操作的独立 ID 或另外统计次数。去重后相等不等于所有需要的次数都完成。

还要确认两份列表是否同一时点。计划导出后新增的 ID 可能合理地只在实际中出现;处理中导出的实际列表也可能暂时缺项。工具不知道时点,应同时记录获取时间和范围,将发现差异与认定错误分开。

参考资料

使用工具

指南 →