修改终端STDOUT / STDERR以根据REGEX更改线条颜色


0

这可能吗?我想要实现的是运行单元测试(Python)以突出显示与当前项目目录的路径匹配的任何行,并保持其他输出不变。通常这些是我正在搜索的行,因此它对于调试目的非常有用。模式匹配部分应该没问题,我只是不知道如何修改输出(测试是用Nose运行的)

Answers:


1

你可以管理你的命令 grep -C10000 -P --color pattern (或者,在您的具体情况下, grep -C10000 -P --color ".*$PWD.*" )。

例如:

cat /proc/cpuinfo | grep -C10000 -P --color 'GHz|MHz'
  • 是的,这是一种无用的猫。
  • -C10000 告诉grep打印10000行上下文。使用足够大的数字使grep打印所有行
  • 使用 |& 如果你想捕获STDERR

1
你可能需要匹配 "^.*$PWD/.*$" 如果要突出显示包含当前目录的整行。
AFH

对,回答更新。没必要 ^$ 然而。我也删除了最后的斜线。
user49740

2
你也可以使用 egrep --color "$|^.*$PWD/.*$" grep所有行以避免使用-C10000。这条路 egrep 将找到所有行并突出显示找到的匹配项。但由于EOL($)不是“可见的”,因此只有实际的搜索模式是彩色的。
Lambert
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.