使用 cat 命令将光标定位或移动到文件中的特定文本

使用 cat 命令将光标定位或移动到文件中的特定文本

我可以使用下面的命令来查找文件中的特定文本

grep -w text-to-find filename

任何人都可以帮助我使用命令,其中我可以使用将光标移动到特定位置cat filename

就像我使用命令打开了一个文件cat,我想将光标移动到可以放置在文件中任何位置的一些文本。

我喜欢将光标移动到该位置并从文件中的该位置向上滚动。

答案1

虽然cat命令本身并不能完全满足您的需要,但有多种可能性。

首先,假设该文件不是大到适合内存:

  • 正如 jesse_b 在评论中提到的,less -p text-to-find filename将会起作用。
  • 就个人而言,我建议您添加tmux到正常工作流程中,因为它允许您进入“回滚”模式(称为“复制模式”),您可以在其中向后搜索。默认按键绑定Ctrl+[进入复制模式,然后 Ctrl+r向后搜索。这假设文本默认为history-limit2000 行,或者您已将其扩展为.tmux.conf.
  • 使用具有可搜索回滚缓冲区的终端(例如,参见这个答案

但假设该文件只是巨大的并且您需要停止在找到文本的地方列出它并从那里向上滚动:

  • grep --before-context 50 -w text-to-find filename将显示要查找的文本之前的 50 行,以及要查找的文本行(--before-context可以缩写-B)。请注意,如果要查找的文本不唯一,则会产生多个结果。
  • sed '/text-to-search/q' FILE(加载一行,打印它,直到找到包含您要查找的文本的行,然后q打印)。
  • awk也可以做到。

这个答案了解更多详细信息和替代方案。

相关内容