如何删除记事本++中的所有奇数行?


29

我正在尝试编辑20000行的文档。我必须删除每条奇数行,例如:

Apple
Monkey
Orange
Lion
fruit
animal

如何删除文档中所有奇数行的字符?


奇数行是什么意思?您是说要从整个文档中删除奇数(不需要的)吗?
antzshrek'9

4
每个奇数行,例如1,3,5,7,9,11,13,15 ....等等。
Nithin N

1
尝试用新行(regexp)替换:[\ n。+ \ n]
Art Gertner's

@ArtGertner我尝试使用该表达式无法正常工作。
Nithin N

1
我会录制一个愚蠢的宏:下箭头,下移箭头,del。
chingNotCHing

Answers:


23

您可以使用查找和替换来做到这一点:

  • 打开替换对话框(Ctrl+ H
  • 选择“正则表达式”
  • 找什么: .+\r\n(.+(\r\n|$))
  • 用。。。来代替:
    $1
  • 按“全部替换”

笔记:

  • 根据您的操作系统,您需要使用\r(旧Mac),\n(Unix,OS X)或\r\n(Windows)来匹配行尾,或者只使用\R应该在任何地方都可以使用的(感谢@AurelBílý)
  • \n|$ 即使在文件末尾也需要正确的结果
  • 默认情况下,Notepad ++从实际光标位置替换为文件末尾。确保将光标置于文件的开头。
    • (您也可以选中“环绕”,但是在这种情况下,它将首先删除光标所在的行,而不是真正地寻找奇数行。)

在此处输入图片说明


它几乎工作,但它不是编辑第一组奇数行的,从1到15讲
尼西ñ

使用该替换窗口的更多透明度来更改屏幕截图。
Biswapriyo

11
请注意,\r由于行尾非常少见-它确实在Mac OS中使用过,但是是经典的OS-X以前的版本。在OS X及更高版本中,行尾为\n,就像任何理智的Unix一样。也\R更适合匹配任何行尾。
奥雷尔·比利(AurelBílý)

@AurelBílý是的,但是Notepad ++仅在Windows上运行,因此此处的可移植性不是什么大问题。
罗布(Rob)

18
  • Ctrl+H
  • 找什么: .+\R(.+)
  • 用。。。来代替: $1
  • Replace all

说明:

.+      : 1 or more any character but newline
\R      : any kind of linebreak (ie. \r, \n, \r\n)
(       : start group 1
  .+    : 1 or more any character but newline
)       : end group 1
  • 检查正则表达式
  • 请勿检查 . matches newline

给定示例的结果:

Monkey
Lion
animal

@NithinN:请注意,接受的答案不适用于linux文件(即linebreak \n
Toto

7
  1. 打开文件,然后将文本光标放在第一行的开头。
  2. 菜单→ 开始录制
  3. End键盘上的键
  4. Shift+ Home,然后backspace
  5. Down
  6. Backspace
  7. Down
  8. 菜单→ 停止记录
  9. 菜单→ 多次运行宏 →勾选运行直到文件结束
  10. 请点击 Run

基本上执行一次操作即可删除奇数行,然后使程序将操作重复到文件末尾。这可以用来解决许多问题!


1

我只是检查了实际使用Notepad ++的同事的PC。尝试这个:

在此处输入图片说明


在我看来这是删除偶数行(2,4,6 ...),而不是奇数行。
马塔·朱哈斯(MátéJuhász)

1
那是正确的。但是,删除偶数行会更容易,并且可以通过在文件开头添加空行来解决问题
Art Gertner

@ArtGertner应该用\ r \ n替换为\ r \ n。+ \ r \ n
chingNotCHing

@chingNotCHing,好人!我已经更新了答案
Art Gertner

@ArtGertner正如您所指出的,它仅适用于偶数行。但是对于大数据集,它不会编辑第1-15行中的第一组数据。
Nithin N
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.