有没有办法进行反向搜索?我有一个非常大的日志文件,其中一个特定的模式填充了几十页
20100414 alpha beta
20100414 alpha beta
<few dozen pages>
20100414 alpha beta
20100414 gamma delta
20100414 gamma delta
<few dozen pages>
20100414 gamma delta
Run Code Online (Sandbox Code Playgroud)
问题是,我不知道"alpha beta"后会有什么文字.它可能是"伽玛三角洲"或其他东西.所以我想跳过包含"alpha beta"的所有行.
两个想法:
M-x keep-lines <RET> REGEXP <RET>
将删除所有与正则表达式不匹配的行
M-x grep <RET> grep -nH -e "<REGEXP>" -v <FILE>
会在NOT中找到包含正则表达式的所有行.
我通常通过使用正则表达式搜索来解决这个问题
C-u C-r ^20100414 [^a]
Run Code Online (Sandbox Code Playgroud)
它搜索下一行“20100414”,这在大多数情况下都能达到目的。它会找到“gamma delta”行,但显然会错过看起来像“20100414 allegro”的行。
还有一个命令M-x flush-lines RE,它删除所有与正则表达式匹配的行RE。这确实会修改缓冲区。
| 归档时间: |
|
| 查看次数: |
760 次 |
| 最近记录: |