跳到主内容
UniKit

列表数据归属查找

把列表 B 的每一项当成一个数据包的起始标记,逐个扫描列表 A 判断每项属于哪个包:遇到标记就进入新包、包内从 1 开始编号,标记之前的项归入前置区;输出为「包名. 序号 + 内容」,并给出包数与前置区统计。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

数据列表 A + 包标记 B(用 `---` 分隔)

归属结果

格式:包名. 序号 + 制表符 + 内容。

输入数据与包标记后即可判断归属

数据条数: 0 · 标记条数: 0 · 包数量: 0 · 前置区: 0 · 标记命中: 0

这个工具能做什么

  • 解析拼在一起的导出文件:每个包以包头开始,先确定包头清单,再给每一行打上归属。
  • 按批次核对数据:把批次号当作起始标记,确认每个批次里各有多少条记录。
  • 把扁平日志还原成结构化视图:以分隔标记切段,给每段重新编号,方便对照原始顺序。

示例

输入

包A
数据1
数据2
包B
数据3
---
包A
包B

输出

包A. 1	包A
包A. 2	数据1
包A. 3	数据2
包B. 1	包B
包B. 2	数据3

列表 B 里的「包A」「包B」是起始标记:它们各自开一个新包,包内从 1 开始编号,标记行本身算该包的第 1 项。

常见问题

「归属」到底是怎么判断的?

把列表 B 的每一项当成起始标记。从上往下扫描 A:遇到与某个标记相同的行,就从这一行开始进入那个包(标记行自己算该包的第 1 项);在遇到下一个标记之前的所有行都属于当前包。

标记之前的那些行算什么?

算「前置区」:它们出现在任何标记之前,不属于任何包。统计里的「前置区」会给出条数,勾选「丢掉前置区」可以把它们从输出里去掉,统计仍然照常。

包名与序号怎么显示?

输出格式是 `包名 + 包名分隔符 + 包内序号 + 内容分隔符 + 内容`,默认 `包A. 1 数据1`。前置区的包名显示为 `-`。不想要前缀就关掉「输出带前缀」。

B 里的顺序重要吗?

重要,包的顺序就是 B 里出现的顺序;B 中的重复标记只算一次(保留第一次出现)。大小写默认敏感,勾选「忽略大小写」后包A 与 包a 视为同一个标记。

关键词:数据归属归属查找data ownership分包分组归属起始标记package归到哪个包

同类工具