我可以使用下面的命令来查找文件中的特定文本
grep -w text-to-find filename
任何人都可以帮助我使用命令,其中我可以使用将光标移动到特定位置cat filename
。
就像我使用命令打开了一个文件cat
,我想将光标移动到可以放置在文件中任何位置的一些文本。
我喜欢将光标移动到该位置并从文件中的该位置向上滚动。
答案1
虽然cat
命令本身并不能完全满足您的需要,但有多种可能性。
首先,假设该文件不是也大到适合内存:
- 正如 jesse_b 在评论中提到的,
less -p text-to-find filename
将会起作用。 - 就个人而言,我建议您添加
tmux
到正常工作流程中,因为它允许您进入“回滚”模式(称为“复制模式”),您可以在其中向后搜索。默认按键绑定Ctrl+[
进入复制模式,然后Ctrl+r
向后搜索。这假设文本默认为history-limit
2000 行,或者您已将其扩展为.tmux.conf
. - 使用具有可搜索回滚缓冲区的终端(例如,参见这个答案)
但假设该文件只是巨大的并且您需要停止在找到文本的地方列出它并从那里向上滚动:
grep --before-context 50 -w text-to-find filename
将显示要查找的文本之前的 50 行,以及要查找的文本行(--before-context
可以缩写-B
)。请注意,如果要查找的文本不唯一,则会产生多个结果。sed '/text-to-search/q' FILE
(加载一行,打印它,直到找到包含您要查找的文本的行,然后q
打印)。awk
也可以做到。
看这个答案了解更多详细信息和替代方案。