从 grep 获取匹配的附加数据

从 grep 获取匹配的附加数据

grep我想知道在面对行数非常长的文件时如何改进我的使用。想象一下只有 1 行的“打包”JavaScript 文件。有时这样的文件会吐出我意想不到的结果并淹没我的控制台(尤其是在使用时--recursive)。

我想我会喜欢类似这样的东西--context,但用于匹配周围的单词/字节。我认为我很聪明,想出了这个用法:

$ grep -rino --color ".\{0,20\}something.\{0,20\}" *

但这使得我的搜索词周围的字符成为匹配的一部分。

答案1

我想解决方案就在我眼前。我现在正在使用这个函数.bashrc

grepAdjusted()
{
  grep -Erino ".{0,20}$1.{0,20}" ${@:2:$(($#-1))} | grep -i --color "$1"
}
alias g=grepAdjusted

我尽量保持简单,并针对我最常见的用例。这不是我最初问题的完美答案,但它提供了我所寻找的内容。

grepAdjusted 的输出

相关内容