如何在Notepad ++的每行末尾添加数字?


37

我有23,000行,我需要1在每行末尾添加数字。

我怎样才能做到这一点?

马上:

[line1]TEXT
[line2]TEXT

我想要的是:

[line1]TEXT1
[line2]TEXT1

2
更有趣的; 您如何为顺序行分配顺序号?:-)
卡尔·威索夫特

1
@CarlWitthoft使用TextFX软件包对行进行编号(TextFx> TextFx工具>插入行号),然后使用正则表达式将行号移至EOL。
DavidPostill

2
如果2条文字行之间有一条空行,那行也应该得到1吗?
Nzall

4
:%s/$/1/。哦,等等,这是Vim。;-)(这适用于Windows和。)
DevSolar

1
@DevSolar或者,:g/$/norm A1。或更复杂但更奇特gg$<C-v>G$A1<esc>。甚至是公认的令人讨厌的东西ggqqqqqA1<esc>j@qq@q。做到这一点的方法不止一种:P
门把手2015年

Answers:


28

如何在Notepad ++的每行末尾添加数字?

  • 菜单“搜索”>“替换”(或Ctrl+ H

  • 将“查找内容”设置为 \r\n

  • 将“替换为”设置为 1\r\n

  • 启用“正则表达式”或“扩展”

    注意-“正则表达式”是“扩展”的超集,因此在这种特殊情况下,使用哪个都无所谓。

  • 点击“全部替换”

在此处输入图片说明

笔记:

  • 以上假设您正在使用Windows EOL编辑文本文件\r\n

  • 如果您使用的文件带有不同的EOL,则可以使用菜单“编辑”>“ EOL转换”将它们转换为Windows EOL。

  • 如果您不使用Windows EOL,并且不想转换它们,请改用以下命令:

    • 使用\n,而不是\r\n用于Unix / OS X EOLS(“查找内容”中\n,“替换为”是1\n

    • 使用\r的,而不是\r\n为Mac OS(最高版本为9)EOLS(“查找内容”中\r,“替换为”是1\r


进一步阅读


仅当行定界符为windows \ r \ n时,此方法才有效。
Zaheylu 2015年

4
是的,但Notepad ++是Windows程序...;)
DavidPostill

5
哦,您是对的... :)尽管如此,文本文件可能还有其他行尾编码;)
Zaheylu 2015年

5
如果您不使用Windows EOL,则没有理由“转换”它们……只需使用\n\r替代(分别为Unix和Mac EOL )。\n=> 1\n\r=> 1\r。我经常使用Extended而不是Regex亲自进行此类操作。
WernerCD

2
@WernerCD应该注意,单个\r仅适用于已失效的Mac OS。不是OS X,后者使用\n
鲍勃

19

另一个选项是记录和回放功能。

  1. 将光标放在第一行,单击“开始录制”
  2. 类型End1
  3. 点击“停止录制”
  4. 单击“多次运行宏...”
  5. 选择“运行到文件结尾”,然后单击“运行”。
  6. 任务完成

屏幕截图

记录和播放

类型End1

点击停止

运行宏

在此处输入图片说明

完成了


9
Notepad ++宏永远不会获得足够的爱。
armani

15

更新的答案:

点击Ctrl+ H打开“替换对话框”。

在搜索模式下,勾选正则表达式。

Find what: $

Replace with: 1个

并击中 Replace all


原始答案

点击Ctrl+ H打开“替换对话框”。

在搜索模式下,勾选Regular Expression

找什么: ^.*$

用。。。来代替 ($0)1

并击中 Replace all

说明

您正在搜索正则表达式^.*$,它本质上是每一行。^标记一行的开始,.*包括任意次数的任意字符,并$标记该行的结束。因此,此正则表达式可以找到每一行的所有内容。

我们将替换为($0)1,将$0其作为找到的表达式,并在后面附加一个1


2
查找= $和替换= 1就足够了。
Salman A

8

或者像大男孩一样做:)。

使用Shift + Alt =>右键(一次)=>向下键(按直到最后一行)选择最后一列。

键入任何您想要的。它会一次出现在所有行上。


我也要说这个..为什么所有复杂的reg表达?这完美地回答了这个问题..为什么要投反对票?因为有人只是不明白这是一个有效的答案?Oo
Ditto

2
这对于23,000行(太慢或太慢(由于画家的算法Shlemiel导致的内存问题?))可能不切实际。您实际上在23,000条线路上尝试过吗?
彼得·莫滕森

2
@PeterMortensen速度很慢,但是内存使用情况很好(5 MB => 25 MB)。更大的问题是,它似乎无法很好地应对不同的线长。
鲍勃

@Ditto我并没有声称自己是普通用户,但这似乎不如正则表达式直观。再一次,xkcd.com / 1171
David Z

1
这不是一个很好的答案,首先您需要找到最长的行,然后您需要向下按直到最后一行,而在测试此方法时,我在打了几十行之后感到无聊,我无法坐在那里20k +线
Aequitas

1

如果它是同样长的字符串,则可以按住Alt并单击并拖动以阻止选择,并可以同时在多行上书写。如果它们的长度不相等,但没有空格分隔,则无法执行相同的过程,然后将“”替换为“”。


3
我有时会使用此功能,但会拖23,000行...没那么有趣:)
Denham Coote 2015年

1

扩展模式。

我想添加一个略有不同的方法,其他答案中没有提到:扩展模式。

这样的事情-所有你所关心的是\r\n\t或者包含在其他这个小名单(尽管该网页看起来是“过时的”,所以不是100%确定其真实性)没有理由去充分定期表达。

我使用Notepad ++的扩展模式“经常”来按摩文件布局-主要以消除多个空行,多余的空格和其他各种奇数为中心。

扩展的

  1. 菜单“搜索”>“替换”(或Ctrl+ H
  2. 确定所需的行尾
  3. 在“查找内容”中输入:
    • \r\n 对于Windows
    • \r 适用于旧版本的MacOS(9或更旧版本)
    • \n 适用于Unix或更高版本的MacOS(OS X或更高版本)
  4. 将“替换为”设置为
    • 1\r\n 对于Windows
    • 1\r 适用于旧版本的MacOS(9或更旧版本)
    • 1\n 适用于Unix或更高版本的MacOS(OS X或更高版本)
  5. 启用“扩展”
  6. 点击“全部替换”

“正则表达式”是“扩展”的超集,因此在这种情况下,使用哪个都无所谓。
DavidPostill

难道不\n适合Unix和\r旧版本的MacOS吗?维基百科的第一个项目符号:en.wikipedia.org/wiki/Newline#Representations
nhahtdh 2015年
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.