grep "search-string" -R * --colour | less
编辑:
我正在寻找直接的解决方案或与此等效的任何方法。 />
#1 楼
当您简单地运行grep --color
时,它意味着grep --color=auto
会检测输出是否为端子,如果是则启用颜色。但是,当它检测到管道时,它将禁用着色。以下命令:grep --color=always -R "search string" * | less
将始终启用着色并覆盖自动检测,您将在
less
中获得突出显示的颜色。EDIT :尽管仅使用
less
对我有用,但也许较旧的版本需要-R
标志来处理颜色,如此处所建议。评论
您需要使用更少的-R来减少颜色编码的正确性
–从这里
09-09-4 23:24
它为我工作的时间更少,可能取决于版本。
– drrlvn
09年9月5日在12:14
(希望)有用的附录:我需要排除一些匹配项,但要保持颜色不变,所以实际上我最终得到了grep模式文件| grep -v badpattern | grep --colour =总是模式| -R较少,完全满足了我的需求。 (再次感谢!)
–欧文·布莱克(Owen Blacker)
2012年6月6日15:35
我不敢相信他们只是花更少的钱就实现了色彩处理功能,因此错过了使用特殊的无色工具的机会。仅就名称而言,它应该已经完成!我可能应该编写一个补丁,当二进制文件以无色方式运行时,该补丁会自动调用-R。
–基督徒
13年7月10日在0:42
@OwenBlacker可能不是别名。您可能使用-R设置了$ LESS。
– Greyfade
16年8月30日在21:01
#2 楼
您可以将其放在您的.bashrc
文件中:export GREP_OPTIONS="--color=always"
,或创建这样的别名:
alias grepc="grep --color=always"
并且您将需要对
-R
使用less
选项,如此处所指出的那样
评论
警告!:GREP_OPTIONS =“-color = always”可能会破坏许多使用grep(或(e | f)grep)的脚本。
–mctylr
2010年3月12日19:25
是的,最好只是给grep加上别名。您始终可以使用GREP获得纯grep,或手动覆盖--color选项。
– asmeurer
2011年7月18日在22:51
这对我不起作用,不过别名确实起作用。
– saeedgnu
2014年2月28日在3:30
#3 楼
在这种情况下,我更喜欢实际创建小的sh文件并将它们放在/usr/local/bin
上。我通常在
grep
上以递归方式使用pwd
,所以这就是我的个人脚本:#!/bin/sh
grep --color=always -r "$@" . | less -R
然后我将其复制为
/usr/local/bin/g
(是的,我经常使用它)评论
为什么不只将shell函数用于这种事情? g(){grep --color = always -r“ $ @”。 | less -R}的工作原理相同,可能会(分钟)提供更好的性能。
–00dani
17年1月11日下午2:00
@ 00dani是的,这也是一个有效的替代方法,有时我会使用它。请注意,在这种情况下,大多数时间都花在IO上,因此无法显着提高性能:)另一个区别是,一旦进入PATH,该脚本也可以与其他Shell脚本和别名一起使用。该函数需要显式加载
–艾泽尔
19年1月27日,12:15
#4 楼
不要使用别名“ grep”,最好不要使用别名“ less”,而shell从未使用过。在您的.bashrc
中输入:alias less="less -r"
。评论
不太正确。一个需要同时使用grep --color = always和更少的-R。请注意,grep仅知道它正在通过管道传递到其他进程中,-color = auto选项仅使用此信息来决定是否输出颜色。
– brandizzi
13年4月17日在18:35
请注意,较少的选项-r与-R不同。 -R可能更安全。
–克雷格·麦昆(Craig McQueen)
2014年1月9日,0:26
那么,为什么要拒绝我的解决方案呢? OP已经使用`--color'选项的例子专门要求更少。
–not2qubit
2014年1月9日15:58
在此别名可能是不可取的。 less支持$ LESS环境变量。因此,最好使用export LESS ='-R'代替别名。
– Greyfade
16年8月30日在20:59
#5 楼
我需要在-r标志之后再运行grep --color=always -R "search string" * | less - r
,然后才能运行。
评论
*是做什么的?在grep的手册页中:*:前一项将被匹配零次或多次。但是我还是不明白..!
–沙燕
19-09-1在17:36
@Shayan它将在所有文件中搜索文本“搜索字符串”。
– Pepedou
20年6月1日在19:41
评论
在“较少”命令中获取颜色的可能重复项*是做什么的?在grep的手册页中:*:前一项将被匹配零次或多次。但是我还是不明白..! @JeremyPowell
@Shayan,在这种情况下,“ *”用于文件参数。它由外壳程序处理,然后将其扩展到目录中的所有文件。在示例中,搜索字符串用双引号引起来。