如何使 grep 输出适合屏幕的字符宽度

mas*_*omi 3 command-line grep

我经常会用很长的行来 grep 文件,从而导致一个匹配单词的输出相当于一页。

将输出限制为仅与终端宽度相同的字符的好方法是什么?

我意识到这意味着匹配的单词可能不存在于该行中。但我仍然想要上下文,所以仅文件名是不可接受的。

Jef*_*ler 5

考虑这个包装函数,它将任何参数传递给 grep,然后将输出剪切到 $COLUMNS (或 80,如果未设置 COLUMNS):

function grepcut() {
  grep "$@" | cut -c1-${COLUMNS:-80}
}
Run Code Online (Sandbox Code Playgroud)

像这样使用它:

$ grepcut sometext somefiles
Run Code Online (Sandbox Code Playgroud)

或者

$ set | grepcut LS_COLORS
Run Code Online (Sandbox Code Playgroud)