显示后,grep 控制台(终端)内容。 (与 grep stdout 不同)

显示后,grep 控制台(终端)内容。 (与 grep stdout 不同)

我在终端上运行了大量命令,它们的结果显示在上面。

是时候我愿意在所写的内容中寻找了,无需重新运行命令产生了这些结果。

仅通过对当前控制台内容执行 grep 操作。
有办法做到这一点吗?

例如,如果这显示在我的控制台中:

Hello !
ERROR: bad argument: -2

Wait... Retry...

之前有其他页面(可通过向上翻页键访问),我该如何 grep 它?

答案1

假设您在 Linux 系统上,在 tty[A] 上工作,那么您应该能够使用积压/dev/vcs[A]) 为了这个目的。

不幸的是,没有换行符,所以 grep 成一行......不会很有效。您需要先使用以下命令对输出进行格式化fold

假设你得到 80 列的显示,那么:

fold -w 80 /dev/vcs[A] | grep TheStringYouWish

应该就这么做吧。


由于fold分割的行长度超过指定的宽度,如果搜索的模式最初是这么长的行的一部分,则上述命令将仅输出原始行的一部分。
人们可以很方便地使用-A-P选项grep解决这个问题。

当然,你会想从另一个 tty 运行它,以免破坏你宝贵的 tty[A] 积压......;-P

答案2

如果您安装了 xclip,则突出显示/复制要搜索的文本块,然后:

xclip -o | grep my_string

相关内容