文本去重后还有重复行?先清理空白,再保留原顺序
文本处理工作流
点击使用相关工具
两行看起来都是B02,去重后却都留下来,先别急着重输。行首或行尾的空格可能让它们成为不同文本。在文本处理工作流中,步骤按界面从上到下依次执行:去重发生时,后面还没做的清理不会提前生效。
同一份8行清单,结果为什么是5条或7条
下面每个方括号表示一行的边界,复制时不要带上方括号。第1行两端各有一个普通空格,第7行两端各有一个全角空格,第8行末尾有一个普通空格;第4行留空。第5行A和01之间的空格属于编号内部,不能随意删除。
[ B02 ] [A01] [B02] [] [A 01] [a01] [ C03 ] [A01 ]
保留默认的“去除首尾空格”,用“+ 添加步骤”依次补上“删除空行”和“去重”,然后执行。结果应按行得到:
B02 A01 A 01 a01 C03
8行中有1个空行;清理后B02出现两次、A01出现两次,各去掉一次,剩下5条。B02仍在A01前面,因为保留的是清理后首次出现的顺序。没有添加“按行排序”,就不会为了字母顺序重新排列。
把三个步骤改成“去重 → 去除首尾空格 → 删除空行”,再处理同一份输入,则得到B02、A01、B02、A 01、a01、C03、A01,共7条。第一次去重时,带空格的B02与不带空格的B02还不相同;后续清理虽然让它们变成相同的字符串,却没有第二次去重。这是步骤次序造成的结果,不是去重按钮没有执行。
大小写要统一,放在去重前;编号中间的空格另算
如果业务上A01与a01确实代表同一个条目,可以采用“去除首尾空格 → 转小写 → 删除空行 → 去重”。示例结果变成b02、a01、a 01、c03,共4条。这里输出也被改成小写,不是只在比较时忽略大小写。需要保留原写法时,不要直接套这组步骤。
A 01仍然单独保留。去除首尾空格不会把它改成A01,也不会自动把全角字母、不同标点或相近姓名当作同一项。先确定编号规则再清理;删除所有空格可能把两个原本不同的编号合并。
第7行的全角首尾空格在本例中能被清掉,但不能推断所有看不见的字符都会消失。若仍有疑似重复,保留原输入,用文本对比查看差异,再核对来源。不要用模糊判断批量删除业务记录。
这类工作流适合一行一条的纯文本
一行是一次判重的单位。“编号、部门、金额”整行不同,就不会因为编号相同而合并。带引号和跨行字段的CSV也不能当成普通行清单处理。需要按Excel某几列判断重复并保留其他字段,转到Excel按列去重;只想删除完全相同的行,则可用更简单的文本去重。
工作流会实际改写文本。代码缩进、Markdown中的空行或有意义的大小写,可能正是原文的一部分。执行前留存原文,先用几行样本核对输出,再处理整份内容。页面不提供按这个流程恢复原文的按钮。
删空行会删掉写着0的行吗?不会。数字字符0不是空白,本例的空行指没有字符或只含可清理空白的行。
修改输入或步骤后,右侧结果会自动更新吗?不会,需要再次点击“执行工作流”。“复制结果”复制的是已经生成的输出;先确认右侧是这次结果,再复制到目标文件。本站的工作流页面按行处理文本,不负责验证每个编号在业务上是否应当合并。