如何从记事本++中的每一行中删除文件名的第二次出现

如何从记事本++中的每一行中删除文件名的第二次出现

我正在为 notepad++ 中的批量重命名实用程序创建一个重命名对文件,这样我就可以将许多文件重命名为 gjpoju908g00s43.mp4 为 last christmas.mp4

但是我需要从每一行中删除每个文件名的第二次出现

我所拥有的一个例子

yTYPlMhaPta29we2IzR29NXS6dHmFmfm.mp4|2017-03-09random textyTYPlMhaPta29we2IzR29NXS6dHmFmfm.mp4
HPFoZp9Dka8Jh5BRBYHjbRbWHzHQieRQ.mp4|2017-03-09random textHPFoZp9Dka8Jh5BRBYHjbRbWHzHQieRQ.mp4
lMmPri5tmUupVUOYzF2K2UZBVH9O3JY0.mp4|2017-03-09random text\u2764lMmPri5tmUupVUOYzF2K2UZBVH9O3JY0.mp4
td4jRfsNLxSX7w42ErHc5szTQ4SsF72y.mp4|2017-03-08random text!!td4jRfsNLxSX7w42ErHc5szTQ4SsF72y.mp4
O1UJ3bwtkf6yTzYtuLjjJAHH0DciZGv4.mp4|2017-03-04random text.O1UJ3bwtkf6yTzYtuLjjJAHH0DciZGv4.mp4

我想要什么

yTYPlMhaPta29we2IzR29NXS6dHmFmfm.mp4|2017-03-09random text.mp4
HPFoZp9Dka8Jh5BRBYHjbRbWHzHQieRQ.mp4|2017-03-09random text!.mp4
lMmPri5tmUupVUOYzF2K2UZBVH9O3JY0.mp4|2017-03-09random text\u2764l.mp4
td4jRfsNLxSX7w42ErHc5szTQ4SsF72y.mp4|2017-03-08random text!!.mp4
O1UJ3bwtkf6yTzYtuLjjJAHH0DciZGv4.mp4|2017-03-04random text..mp4

请注意,“随机文本”部分代替了我的实际文件名,它们都是不同的,而不是每次都是实际的单词“随机文本”。所以我基本上只想从每行中删除文件名的第二个出现位置,即开始一行的位置。

我对这一切真的很陌生,所以我一直在尽我所能去搜索并找到自己的答案,而且我已经设法将文件放到了原来的位置,弄清楚了如何删除两个字符之间的所有内容,在某些字符之后创建新行,还有一些其他的事情我相信对你们所有人来说都是非常基础的,但最后一部分我只是想不出如何去做,或者是否有可能。

我知道我可以手动选择每行的开头,找到并替换为空白,但有超过 245 行,所以如果可能的话,我宁愿找到一种自动化的方法

答案1

以下是一种方法:

  • Ctrl+H
  • 找什么:^(.+?)\.mp4.+?\K\1
  • 用。。。来代替:LEAVE EMPTY
  • 查看 环绕
  • 查看 正则表达式
  • 取消选中 . matches newline
  • Replace all

解释:

^           # beginning of line
(.+?)       # group 1, 1 or more any character but newline
\.mp4       # literally .mp4
.+?         # 1 or more any character but newline
\K          # forget all we have seen until this position
\1          # backreference to group 1

屏幕截图(之前):

在此处输入图片描述

屏幕截图(之后):

在此处输入图片描述

答案2

一个更简单的方法是:

查找 :^([^.]*)(.*)\1
替换为 :\1\2

相关内容