grep - 只在结果中显示 X 个字符

grep - 只在结果中显示 X 个字符

有没有办法指示grep在之后剪切结果X字符?

例如,如果我执行grep -iR searchString,有时结果中会有压缩的 javascript 文件,其中整个代码都在一行中,这会“破坏”结果,因为有时我的终端需要处理太多内容,并且部分结果会消失,或者我有滚动很多。

例如结果应该从...改变

123456789

...到...

1234

...如果我使用伪选项执行 grep --show-n-chars 4

我在文档但我找不到东西。

答案1

您可以使用选项-o仅结合-E(扩展正则表达式)和模式打印匹配部分.{0,4}以匹配最多四个字符您的搜索模式:

$ echo "foo123456789" | grep -oE 'foo.{0,4}'
foo1234

或者您可以将结果通过管道传输到head -cN(类似于cut)以打印N字符:

$ echo "foo123456789" | grep 'foo' | head -c4
foo1

答案2

grep本身没有这样的选择。您可以使用以下命令实现您的目标cut

grep "foo" bar | cut -c -4

这只会打印每个grep结果的前 4 个字符。

相关内容