Answers:
不知道这是由于某个功能还是某种隐藏的副作用,但这在GNU grep
2.11中有效:
grep --color 'an\|' test.txt
grep 'an' OR ''
。在''
成功匹配没有在输入每个位置。仅an
突出显示,因为您无法突出显示任何内容。:-)
grep --color -e 'an' -e ' '
(匹配一个无法着色的空格就可以了)。比用管道输送到更好sed -e ''/an/s//$(printf "\033[33;1m&\033[0m")/''
,但是后者可能更有效。将“ an”更改为另一个搜索词。;)
bashrc
别名的命令,现在所有别名都以红色突出显示。超!alias aliases="clear;cat ~/.bashrc|grep --color \"alias\""
ACK有一个--passthru
选项,将做到这一点:
ack --passthru an test.txt
some_command | ack --passthru an -
ack-grep
...(该名称ack
应用于汉字代码转换器)
您可以尝试一下我的这个脚本。它可以让您指定文件或接受标准输入。您可以为要突出显示的文本定义Python正则表达式。高亮显示的文本默认为霓虹绿(嘿,我使用黑色背景!),但是您可以更改ANSI颜色代码。
#!/usr/bin/env python
import sys
import re
def highlight_text(text,pat):
def replacement_funk(matchobj): return '\x1b[42m%s\x1b[0m'%matchobj.group(0)
return re.sub(pat,replacement_funk,text)
if __name__ == '__main__':
if len(sys.argv) == 2:
input = sys.stdin
pat = sys.argv[1]
elif len(sys.argv) == 3:
input = open(sys.argv[2])
pat = sys.argv[1]
else:
sys.stderr.write("colorme pattern [inputfile]")
text = input.read()
print highlight_text(text,pat)
这是一个例子。
blessburn@blessburn:/tmp$ cat test.txt | ./colorme.py an
对于前景的距离Afgh有序撤出北约的 IST 的遭遇了两次挫折总统卡尔扎伊德国马克的关于美国军队DED限制的 d的塔里布的暂停和谈。
blessburn@blessburn:/tmp$ ./colorme.py '(Af.*? |NA[\w]{2})' test.txt
北约有序撤离阿富汗的前景遭受了两次挫折,因为总统哈米德·卡尔扎伊要求限制美军,而塔利班则中止了和谈。
<b>
,如果你需要一个字的粗体部分。
$cat test.txt | grep --colour=auto -C 100000 an
“颜色”也可以。您还可以定义一个别名,使grep始终使用以下选项:
alias grep='grep --colour=auto -C 100000'
将以上内容放在/etc/profile.d/或您的.bashrc中。
-C 1000000
您再也无法grep。只需执行alias highlight='grep --colour=auto -C 1000000'. The cat in the first example is also not necessary:
grep --colour = auto -C 100000文件`即可。
grep
处理上下文行的集合。)
highlight
命令