我有一个900mb日志文件,我可以在SublimeText 3中打开。这个文件是膨胀的,行类似于以下内容。
10/08/2014 23:45:31:828,Information,,,,ExportManager: ,No records to send and/or not connected
如何过滤掉包含No records to send and/or not connected
答案 0 :(得分:190)
您可以进行正则表达式搜索和替换:
点击查找>取代
确保按下正则表达式按钮。
对于Find What字段,请输入:
^.*No records to send and/or not connected.*\n
将“替换为”字段留空。
点击全部替换
答案 1 :(得分:51)
对于那些不想写正则表达式的人 - 您只需选择搜索字符串,点击ctrl+cmd+g
或从菜单中选择“快速查找全部”,这将为您提供每个匹配字符串的选择;从那里Home
将每个选择光标移动到行的开头,shift+End
将选择每个匹配的行,del, del
将删除所有匹配的行。
多光标编辑很有趣!
答案 2 :(得分:44)
我无法使正则表达式工作,所以我从这个答案中使用了Alt-F3方法:
答案 3 :(得分:20)
上面提到的正则表达式代码都不适用于我的情况,但这确实有效:
.*(text in question).*
答案 4 :(得分:17)
这是我为Windows用户找到的:
答案 5 :(得分:0)
我遇到了编辑站点地图的类似问题
这对我有用:
答案 6 :(得分:0)
以上答案是正确的方法,但是如果您想摆脱仅包含一个字符串的行,那么可以这样做,
查找->替换->将^.*[a-zA-Z]+.*\n
放置在查找部分中,并保持替换为空白。点击全部替换按钮,这将删除其中甚至只有一个字符串的所有行。
答案 7 :(得分:0)
我喜欢手动版的解决方案,非常好。
但是...您是否尝试过使用 cat
和 grep -v
来过滤掉这些行并重定向到另一个文件?也许比学习正则表达式更好..(我个人总是从正则表达式开始,以自己编辑文件结束)。
在 Windows 中,您使用 findstr /v
。
所以你会这样做:
# in bash
cat my.log | grep -v "No records to send and/or not connected" > new.log
或
# in cmd
cat my.log | findstr /v "No records to send and/or not connected" > new.log
答案 8 :(得分:0)
Find -> Find all(这将标记具有关键字的行) 然后去编辑->行->删除行