我想过滤属于特定用户的日志中的所有内容。
使用以下模式并启用“. matches newline”选项,我可以匹配我正在寻找的所有内容,但是当我要求 Notepad++ 为这些行添加书签以便我可以复制它们时,会发生一些奇怪的事情。
([^\n]+)userB(.+?)(?=([0-9]{4}-[0-9]{2}-[0-9]{2}))
在第 2 行和第 8 行前面,我看到一个书签图标,但第 3、4、5 和 9、10、11 行缺少图标,尽管它们属于突出显示的文本。
为什么 Notepad++ 突出显示文本,但无法正确放置书签?更重要的是,我该如何解决这个问题?
这是我正在使用的日志:
2015-03-02 11:28:44,993 INFO application [http-0.0.0.0-8080-17] userA 99:7 12345 some message
2015-03-02 11:28:45,468 WARN application [http-0.0.0.0-8080-9] userB 12:2 some message
extra information
at some.classes.and.function(Filename.java:123)
at some.classes.and.function(Filename.java:123)
2015-03-02 11:28:44,993 INFO application [http-0.0.0.0-8080-17] userA 99:7 12345 some message
2015-03-02 11:28:44,993 INFO application [http-0.0.0.0-8080-17] userA 99:7 12345 some message
2015-03-02 11:28:45,468 WARN application [http-0.0.0.0-8080-9] userB 12:2 some message
extra information
at some.classes.and.function(Filename.java:123)
at some.classes.and.function(Filename.java:123)
2015-03-02 11:28:44,993 INFO application [http-0.0.0.0-8080-17] userA 99:7 12345 some message
以下内容将在不使用书签的情况下提取您想要的信息,并且应该适用于 Notepad++ 版本 6.9.1 及以上版本。
它假设额外信息行不以数字开头。
它会从数据文件中删除复制的行,因此如果您想保留数据文件,请处理数据文件的副本。
它的效率不是很高,因为切换选项卡命令将光标重新定位到选项卡文本的开头。
它复制了 userB 的最后一个匹配项。 (轻微刺激!)
描述
1) Define shortcuts for switching to next & previous tabs
2) Open the data file with Notepad++
3) Open a new tab then go back to the data file tab
4) Define a macro `Cut User data. Paste in next tab`
5) Run the macro `Cut User data. Paste in next tab` on the data file to `end of file`
(It needs to be run once prior to running it in `Run a Macro Multiple Times`
because of a quirk of Notepad++)
Method
1) Settings
Shortcut Mapper
Main menu
Switch to previous document
= Ctrl+Alt+Left
Switch to next document
= Ctrl+Alt+Right
Close
2)用Notepad++打开数据文件
3) File
New
Ctrl+Alt+Left
4) Start Recording
Find
找什么:.+ userB.+\r\n(\D.+\r\n)*
搜索模式 = 正则表达式
Find Next
Alt+F4
Ctrl+X
Ctrl+Alt+Right
Ctrl+End
Ctrl+V
Ctrl+Alt+Left
Stop recording
Save Current Recorded Macro
Name: Cut User data. Paste in next tab
OK
5) Macro
Cut User data. Paste in next tab
Run a Macro Multiple Times
要运行的宏:Cut User data. Paste in next tab
运行直到文件末尾 = 是
Run
然后当它停止时Cancel
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)