在终端输出上搜索文本

pra*_*upd 43 bash gnu-screen gnome-terminal

我正在运行一个带有命令的应用程序,该命令$ grails run-app在终端中打印登录,如下所示。

search_text_terminal

我想要的是user authorities在此日志中搜索特定文本(例如),以便我可以进一步验证。使用 Logging APIs 写入文本文件的一种方法,但我现在想在终端中搜索它。

我在如何直接在终端上搜索文本提示screen命令时发现了类似的问题,但我不知道screen在这种情况下是如何工作的。我试过了, $ screen grails run-app 但无法继续前进。

我可以看到屏幕列表

prayag@prayag:~/zlab/nioc2egdelonk$ screen -list
There is a screen on:
    8076.pts-2.prayag   (10/06/2013 12:13:25 PM)    (Attached)
1 Socket in /var/run/screen/S-prayag.
Run Code Online (Sandbox Code Playgroud)

pra*_*upd 29

Ctrl+a(默认screen命令前缀),[(输入copy模式)后跟?SEARCH_TEXT似乎有效。按n转到下一个事件。从那里,您可以复制单词、行、区域等以转储到文件中或稍后粘贴(使用Ctrl+a, ])。

在此处输入图片说明

  • 使用`shift+ctrl+f` (44认同)
  • 我不能做到这一点。所以你需要一次按3个键?ctrl, a, [? (5认同)

Aug*_*tin 25

如果您使用Konsole(KDE 终端模拟器),则可以使用Ctrl+ Shift+ F。这可能也适用于其他 (Linux) 终端模拟器。

编辑:
@sumit 报告这也适用于Gnome Terminal
@vdicarlo 报告这也适用于XFCE4 Terminal

  • 这也适用于 GNOME 终端模拟器。 (2认同)

Tim*_*imo 11

您可以grepgrails命令后使用:grails run-app | grep "user authorities". 但是,您将不得不重新运行您的命令。

  • 虽然是正确的,但在*输出已经打印之后*做一些事情会更有用。 (6认同)
  • 这个答案不应该被否决,它绝对正确。 (3认同)
  • @Baron我什至很确定提问者的意思是暗示命令已经在运行,所以这不能回答问题。 (3认同)

小智 6

将命令的输出重定向到 vim 编辑器: grails run-app | vim -

使用 Vim 搜索的几个技巧:

  • 输入/然后输入您的搜索字符串user authorities
  • 键入:set hlsearch以突出显示搜索结果
  • 键入n向前搜索或Shift+n向后搜索
  • 请记住您现在处于编辑器中,因此如果您不小心做了一些更改,您可以恢复,只需按ESC一次即可退出编辑模式,然后按一次u即可撤消一项编辑
  • 输入:q!退出 Vim 并放弃搜索结果
  • 你可以做任何你想做的事:-D http://vim.wikia.com/wiki/Vim_Tip​​s_Wiki