有问题的行是那些有名字的行,然后在末尾引用时间。我要找出所有重名的线路。只保留时间戳最早的第一个示例,并删除所有其他示例。我不想删除有问题的行中的重复文本。我要整条线都撤了。所以当我完成时,每个剩余的条目将只有一个。我不能排序和删除重复的行,因为它们的位置必须保持在机智和下面的相应的轨道号码(除非有一种方法来处理这个问题后)。
到目前为止,这项任务是很容易做到的使用“删除重复”功能在Microsoft Excel。但是离开Notepad环境,复制出来,在Excel中进行编辑,然后复制回Notepad是一件麻烦的事情。它妨碍了我创建内部宏和在所有打开的文件中自动执行任务。有成千上万的文件需要完成这项任务,沿着还有许多其他编辑。我已经想出了如何从Notepad中完成其他所有事情,除了这个 * 壮举 *。我已经尝试了无数的正则表达式命令,书签技巧等。不行。几个星期来,我一直试图把Excel抛在脑后,想办法在Notepad中做到这一点。如果重复项都是按顺序排列的,一行接一行,我就可以做得很好。但事实并非如此。
以下是一个例子:
之前
Track 1 Retakes
E07-P09 - Retake 00:00:12:370
E07-P09 - Retake 00:00:14:572
E07-P09 - Retake 00:00:17:711
E07-P09 - Retake 00:00:22:388
E07-P09 - Retake 00:00:23:939
E07-P09 - Retake 00:00:30:218
E07-P09 - Retake 00:00:32:177
Track 2 Med Signals
TV Effect 00:03:35:983
TV Effect 00:03:37:743
TV Effect 00:04:18:848
Dio Effect 00:04:17:607
TV Effect 00:08:07:754
TV Effect 00:08:37:808
Dio Effect 00:08:37:567
Track 3 Rad Tuning
Tuning NF HQ 00:10:46:358
Track 4 Super Clips
Colde Square - Mentality 00:03:37:935
Colde Square - Mentality 00:08:08:465
Track 5 Audi Bed
Royal Fade into Grey 00:00:00:000
The Sidas 00:04:19:535
Royal Fade into Grey 00:08:39:400
之后
Track 1 Retakes
E07-P09 - Retake 00:00:12:370
Track 2 Med Signals
TV Effect 00:03:35:983
Dio Effect 00:04:17:607
Track 3 Rad Tuning
Tuning NF HQ 00:10:46:358
Track 4 Super Clips
Colde Square - Mentality 00:03:37:935
Track 5 Audi Bed
Royal Fade into Grey 00:00:00:000
The Sidas 00:04:19:535
每一部分都有制表符分隔,每行的开头有两个制表符,上面有时间戳。
1条答案
按热度按时间olmpazwi1#
已经有an answer解释了如何删除除了最后一行之外的所有重复行。我们可以稍微修改它,并应用一个小技巧,以便它适用于您的用例,即保留第一个。
首先,让我们把正则表达式变得更具体一些:
试试on regex101.com。
然而,这仍然只保留了最后一行。很明显,让它反向工作的方法是颠倒行的顺序!Notepad++对此提供了内置支持(更多信息可以在this Super User question中找到):在顶部菜单中,找到 * 编辑 *,然后是 * 生产线操作 *,最后是 * 反转生产线顺序 。
最后总结:反转行顺序,将上面的正则表达式替换为空,然后将其反转回来。
应该注意的是,使用您选择的语言编写一个小脚本可能是一个更好的解决方案,因为脚本是自动化的,允许代码重用,并且比正则表达式更灵活。
设置应该看起来像这样( 替换为 * 为空):