如何从每行Notepad ++中删除前27个字符?


59

我有一个日志文件,我需要删除每行的前27个字符。您会有这样的一行:

2011-09-25 01:25:29 [INFO] <Exazoro> wazup

但是它必须是这样的:

<Exazoro> wazup

您可以使用来自unxutils或busybox的unix cut命令的各种形式来轻松完成操作-是否必须使用notepad ++?
Journeyman Geek

@JourneymanGeek不必一定是notepad ++,它只是我主要使用的,它具有宏和插件支持,所以我猜可能有一些方法可以做到这一点。
Mythrillic 2011年

Answers:


78

使用正则表达式搜索,搜索^...........................并替换为(空字符串)

在此处输入图片说明

不幸的是,记事本+ +不支持重复计数一样^.{27}-在赛特正则表达式的文件在这里也适用。


或者,使用矩形多行选择(选择时按Alt)以选择每行中的前27个字符,然后按DeleteBackspace

在此处输入图片说明


使用Unix工具(例如Cygwin,UnxUtils),您可以使用cut -c28-sed -E "s|^.{27}||"代替。至少,这些是您要使用的Linux命令行调用...


24
Alt + Shift +右键选择第一行中的27个字符,然后在按住Alt + Shift的情况下使用Pg Dn即可
icc97 2011年

1
对于正则表达式,Notepad ++并不遵循所有标准的正则表达式规则,因此对于您无法使它正常工作,我并不感到惊讶。而且由于看起来前27个字符是日期,时间和错误级别,所以可能提供更有用的正则表达式,例如^[0-9\-]+ [0-9:]+ \[[A-Z]+\]
MBraedley 2011年

4
喜欢Alt矩形选择!!
Gromer 2012年

Alt选择简单易行。感谢Daniel Beck。
Uday Kiran Thummalapalli 2013年

1
哇!感谢您提供的矩形选择提示...我什至都不知道存在类似的东西...
Fr0zenFyr 2014年

19

在较新版本的Notepad ++中,您可以使用重复计数。只需替换^.{1,27}为空字符串即可。


7
当然,如果可以保证精确到 27个字符,请使用^.{27}
Schism

5

下面是宏方法。对于非技术人员来说,这更直观:

1)将光标放在第一行(任何光标位置)

2)点击:宏->开始录制

3)执行以下按键活动:

* Press the Home key  
* Press Delete key 27 times (till you reach the intended character)
* Press down arrow button. 

4)点击:宏->停止录制

5)单击:多次运行宏->选择运行直到文件结束->单击运行。


4

UPD:现在Notepad ++确实支持以下重复:^.{27} 但是现在您notepad ++将重复删除字符直到27个以上,要避免这种情况,您可以使用以下表达式:

  • 找什么: ^.{27}(.*)$
  • 用。。。来代替: $1

这很完美!
Rudy

2

Daniel Beck答案的一个小改进:
使用正则表达式搜索,搜索:

^...........................(.*.\r\n) 

并替换为:

\1


0

ALT + SHIFT +鼠标选择(仅ALT不起作用)

指向文件的开头,最后按住ALT + SHIFT并指向您要定位的位置...

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.