我想从终端的命令输出中搜索和剪切文本,以便可以在后续的命令行调用中或仅在编辑器会话中使用它。
有没有什么方法可以轻松地根据终端的输出运行正则表达式并剪切结果而无需触摸鼠标?
我的要求是:
- 它应该在通过 ssh 与远程机器一起工作时工作。在这些机器上我无法安装额外的软件,所以解决方案必须是本地的。
- 如果可能的话,它必须“始终存在”。例如,如果我正在运行一个很长的进程,突然失败了,我希望能够通过输出进行 grep,而不必在准备好的环境中重新启动该进程。
答案1
剪辑和grep和管道!
安装
xclip
实用程序 (sudo apt-get install xclip
)- 默认情况下,
xclip
设置为将管道输入复制到剪贴板 xclip -o
将把剪贴板的内容“粘贴”到你的终端(即标准输出)
- 默认情况下,
对于正则表达式,只需将命令传递给 grep;该
-P
开关将为您提供完整的 Perl 正则表达式功能。例如:
ls -lR | grep -P "anc.*" | xclip
复制到剪贴板- 而是使用
tee xclip
以便可以显示和复制。
- 而是使用
答案2
屏幕(1)允许您使用键盘复制/粘贴,但它要求您在里面运行 shell/进程screen
。
要复制,请按Ctrl+ A [,将光标(使用箭头键)移动到起点并按⏎(RETURN),将光标移动到终点并按⏎。标记的文本现已复制。
要粘贴,请按Ctrl+A ]
该解决方案也适用于 Byobu,因为 Byobu 只是屏幕的包装器。