我在终端上运行了大量命令,它们的结果显示在上面。
是时候我愿意在所写的内容中寻找了,无需重新运行命令产生了这些结果。
仅通过对当前控制台内容执行 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