bash - 如何在 sed 中对模式进行颜色匹配
问题描述
天,
我有一个这样的日志搜索功能:
function searchLogs() {
local logFile="$1"
local filters="${@:2}"
local sedScript='/^---/ !{H;$ !d};x';
# loop over filters and add each to sed script
for filter in $filters
do
# append filter
sedScript=$sedScript';/'$filter'/ !d';
done;
# search log file for log events that contain ALL filters
sed -e "$sedScript" "$logFile";
}
可以这样使用:
$ searchLogs <file> <pattern> <pattern> | less -R
...并将构建这样的命令
sed -e '/^---/ !{H;$ !d};x;/<pattern>/ !d;/<pattern>/ !d' <file> | less -R
...但我希望它还能为火柴上色...
...但是,我一点运气都没有。有谁知道如何为每场比赛着色sed
?
ps 我不想使用grep
,因为我正在使用grep
一个包装函数,我将它通过管道输入到日志文件的颜色部分以使它们更易于阅读,例如(使用粗体显示grep
命令已经着色的内容)
----------
编号 = 12345
客户= SomeService
时间= 12:01
----------
解决方案
仍然使用 grep 怎么样,并在本地为其设置 GREP_COLORS:
echo ab | GREP_COLORS='ms=1;33' grep --color=always a | GREP_COLORS='ms=1;32' grep --color=always b
推荐阅读
- java - 按子类进行流式传输和过滤
- python - Python - 如何绘制有条件的函数?
- javascript - 如何在 XSD 中允许不同顺序的元素?
- python - 在 Python-PPTX 上替换多个子字符串
- javascript - 从 HTML 字符串中提取样式
- python-3.x - 获取 S3 存储桶中使用的不同存储类
- enterprise-architect - 如何通过企业架构在DMN图中使用复杂数据对象作为列表
- angular - Angular 外部服务自定义证书 ERR_BAD_SSL_CLIENT_AUTH_CERT
- c# - 我怎样才能得到这个算法来确定 c# 中的最低学生分数?
- mysql - MySQL - 如何强制 AVG 函数包含 0