По сути, у меня есть файл, строки которого я хочу раскрасить разными цветами, если он соответствует 1 из 2 регулярных выражений с помощью grep. Если регулярное выражение соответствует, то используйте один цвет; если регулярное выражение совпадает, используйте другое.
Тем не менее, grep красит по одному цвету за раз, поэтому я хотел бы направить вывод grep в другой оператор grep другого цвета.
Тем не менее, цвет grep контролируется с помощью переменной среды GREP_COLOR (это не рекомендуется в пользу GREP_COLORS, но это не работает на окнах, поэтому вместо этого я использую GREP_COLOR)
Таким образом, командный файл будет выглядеть примерно так:
@echo off
setlocal
set GREP_COLOR=06;32
echo GREEN RED OTHER | grep --color=always --line-buffered "GREEN" | grep --color=always -E "RED"
endlocal
Как я могу изменить GREP_COLOR для второго вызова grep?
У меня это работает с 2 пакетными файлами, но должен быть способ сделать это с помощью одного пакетного файла:
ctest1.bat:
@echo off
setlocal
set GREP_COLOR=06;32
echo GREEN RED OTHER | grep --color=always --line-buffered "GREEN" | ctest2.bat
endlocal
ctest2.bat:
@echo off
setlocal
set GREP_COLOR=01;31
grep --color=always -E "RED"
endlocal
Есть идеи? Кажется, это должно быть просто, но я потратил впустую 2 часа, пытаясь превратить его в 1 пакетный файл безуспешно.