Я пытаюсь написать скрипт, который будет делать подсветку журналов для удобства чтения. Проблема, с которой я сталкиваюсь - это попытка сопоставления с подстановочным знаком, а также попытка печати подстановочной переменной. В моем файле я ищу "psuslot- *" (может быть 1 или 2). Цель состоит в том, чтобы выделить строку «psuslot-1» или «psuslot-2» в строке журнала. Моя текущая команда, с которой я тестирую:
cat file.txt | sed "s|\(psuslot-.\)|$(printf "\033[93m"\1"\033[0m")|"
Обозначает это в выходных данных: 1
Я знаю, что группы относительно корректны, так как эта команда сохраняет правильная группа:
cat file.txt | sed "s|\(psuslot-.\)|\1|"
Сохраняется в выходных данных: psuslot-1
и psuslot-2
Использование групп захвата выглядит не слишком хорошо для выполнения оболочки , Есть ли способ перевести подстановочный знак в выполнение?