在终端输出中搜索文本


33

我正在运行带有命令的应用程序,该命令$ 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.

但是,您使用屏幕命令,但我建议您保留并使用tmux
PersianGulf

@MohsenPahlevanzadeh,当然,我也会尝试tmux。听到了很多。
2013年

Answers:


23

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

在此处输入图片说明


5
我不能做到这一点。因此,您需要一次按3个键?Ctrl,A,[?
卡帕杰

34
使用shift+ctrl+f
Ja8zyjits

15

如果使用Konsole(KDE终端仿真器),则可以使用Ctrl+ Shift+ F。这在其他(Linux)终端仿真器中也可能起作用。

编辑:
@sumit报告这在Gnome Terminal中也有效
@vdicarlo报告这在XFCE4 Terminal中也有效。


1
这也适用于GNOME终端仿真器。
Sumit

在上工作terminator。谢谢!
ryanjdillon

8

您可以grep在以下grails命令后使用:grails run-app | grep "user authorities"。但是,您将必须重新运行命令。


3
这个答案不应该被否决,它是绝对正确的。
amrx

2
正确无误,但在输出打印可以执行某项操作会更有用。
路德维克

@Baron我什至可以确定asker的意思是暗示该命令已经在运行,因此这无法回答问题。
没人


1

将命令输出重定向到vim-editor: 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

学到了东西!
oneindelijk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.