0

我有一个 183419 行的文本文件,我想在其中替换整行:

3 _TYPE PHOTO  

和:

3 _TYPE DOCUMENT  

但前提是它在以以下开头的行之后 3 或 4 行:

3 FILE d:\genie\grogan\doc\......  

例如:

3 FILE d:\genie\grogan\doc\mills\Mills Albert 1884 Birth Partial Transcript.jpg  
3 TITL Mills Albert 1884 Birth Partial Transcript  
3 _SCBK Y  
3 _TYPE PHOTO

或者:

3 FILE d:\genie\grogan\doc\mills\Mills Albert 1884 DeathTranscript.jpg  
3 TITL Mills Albert 1884 DeathTranscript  
3 _SCBK Y  
3 _PRIM Y  
3 _TYPE PHOTO

但不适用于这种情况:

3 FILE d:\genie\grogan\photos\grogan edward\Grogan Thelma Simpson Jim.jpg  
3 _SCBK Y  
3 _TYPE PHOTO

这是一项需要每月运行的任务。

4

2 回答 2

0

进行正则表达式搜索和替换,确保不选择点匹配换行符。设置Find what to^(3 FILE d:\\genie\\grogan\\doc\\(.*\r\n){3,4})3 _TYPE PHOTO$Replace with to \13 _TYPE DOCUMENT

(.*\r\n){3,4}部分匹配genie\\grogan\\doc行尾加上 2 或 3 个完整的行。该(3 FILE ... )3 _TYPE PHOTO$部分匹配两个指定的字符串,并且括起来的括号捕获除了要替换的行之外的所有文本。\1替换字符串中的 插入捕获的文本,字符串的其余部分是想要的新文本。

在您的测试线上使用 Notepad++ 6.3.2 进行了测试。

根据您的行尾,您可能需要调整Find what字符串的\r\n部分。这些示例并未涵盖所有选项,因此您可能还需要根据“仅当它是 3 或 4 行之后”的确切含义将部分更改为{3,4}{4,5}

于 2013-07-22T09:29:23.780 回答
0
  1. 为您的行添加书签
  2. 只对带书签的行做一个正则表达式(就像AdrianHHH说的)
于 2014-01-08T20:03:53.333 回答