Bash 如何在sed中创建颜色匹配模式
G'day 我有这样的日志搜索功能:Bash 如何在sed中创建颜色匹配模式,bash,function,shell,sed,colors,Bash,Function,Shell,Sed,Colors,G'day 我有这样的日志搜索功能: 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
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
可以这样使用:
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
$searchLogs | less-R
…并将生成这样的命令
sed -e '/^---/ !{H;$ !d};x;/<pattern>/ !d;/<pattern>/ !d' <file> | less -R
sed-e'/^-/!{H;$!d};x、 //!d、 //!d’less-R
…但是我想让它给火柴上色,另外
……然而,我一点运气都没有。有人知道如何用sed
给每根火柴上色吗
p、 我不想使用grep
,因为我正在使用grep
作为包装函数,我将其导入到日志文件的部分中,以使其更易于阅读,例如(使用粗体显示grep
命令已经着色的内容)
------------
id=12345
客户端=SomeService
时间=12:01
-----------继续使用grep,并在本地设置grep\u颜色怎么样:
echo ab | GREP_COLORS='ms=1;33' grep --color=always a | GREP_COLORS='ms=1;32' grep --color=always b
如果仍然使用grep,并在本地为其设置grep_颜色,该怎么办
echo ab | GREP_COLORS='ms=1;33' grep --color=always a | GREP_COLORS='ms=1;32' grep --color=always b
如果输入=
12345
且模式为1
和4
,则sed是否匹配[1234]5
或[1]23[4]5
(使用括号突出显示匹配)?sed有什么问题grep--color=始终…|grep…
?@jhnc正如我所说的,我正在将该函数的整个输出导入grep,以对日志的特定部分进行着色searchLogs | grep--color=always-e“^[^=]*”-e“---”e“,“| less-R
,以便它们更易于阅读。我想用sed
来做,这样我就可以用不同的颜色给火柴上色了。sed…|格雷普颜色=。。。grep--color=始终…|格雷普颜色=。。。grep…
?另请参见输入=12345
和模式是否为1
和4
,sed是否匹配[1234]5
或[1]23[4]5
(使用括号突出显示匹配)?sed有什么问题grep--color=始终…|grep…
?@jhnc正如我所说的,我正在将该函数的整个输出导入grep,以对日志的特定部分进行着色searchLogs | grep--color=always-e“^[^=]*”-e“---”e“,“| less-R
,以便它们更易于阅读。我想用sed
来做,这样我就可以用不同的颜色给火柴上色了。sed…|格雷普颜色=。。。grep--color=始终…|格雷普颜色=。。。grep…
?另请参见