you can use bline
(Beautiful Line Output) specifically designed for complex output and colorizing.
all lines, foreground red:
ls | bline -a red
all lines, foreground red, background green:
ls | bline -a red:green
all lines, foreground is default (NOTE.3), background is green:
ls | bline -a :green
add color-mode, odd lines (foreground) will be in light,italic,red
ls | bline -o light:red
add text-mode, as well
ls | bline -o light:italic:cross:red
combine options are okay:
ls | bline -a light:green -i red -I 7 -r yellow -R 5-10
using hex value, foreground in red
df | bline -H -a ff00ff
hex, foreground green, background red
df | bline -H -a 00ff00:ff0000
hex just background
df | bline -H -a :ffff00
look for string: 'sda' and make that/those line(s) green
lsblk | bline -m sda light:green
some screenshots

2.

3.

4.

5.
