Имеется скрипт, который находит в каталоге catalog1 текстовые файлы содержащие, например, «слово» и заменяет их на такие же, но без текста «слово», копируя их из catalog2.
catalog2 - это резервная копия catalog1, сделанная rsync-ом.
#!/bin/bash
var1=`grep -rl "слово" ~/catalog1 | sed 's|.*/||'`
zenity --info --title="Сообщение" --text="Будут заменены:\n$var1" --width=350
if [ "$?" -eq 1 ]; then
zenity --info --title="Сообщение" --text="Действие отменено" --width=350
else
find ~/catalog1/ -type f -exec grep -rl "слово" {} \; -exec rm -v {} +
sleep 1
echo -e '\033[37m' "Запускаем rsync" '\033[38;5;223m'
sleep 1
rsync -r -t -v --ignore-existing -u -s ~/catalog2/ ~/catalog1/
fi
Скрипт выполняется в терминале и я пытаюсь сделать подсветку вывода.
Есть сложности с find и rm. Вот здесь разбирается похожий вопрос и я воспользовался советами оттуда. Например, предлагается использовать GREP_COLORS
Делаю вот так:
find ~/catalog1/ -type f -exec grep -rl "слово" {} \; -exec rm -v {} + | GREP_COLORS="sl=1;31:ms=1;31" grep --color=always '^\|[^/]*$'
В этом случае раскрашиваются и rm и find - скриншот, но хотелось чтобы, только rm, а выхлоп find выводился цветом по умолчанию.
Перепробовал кучу вариантов, но не осилил эту тему.
Как можно здесь выкрутиться, раскрасив только вывод rm, не затрагивая вывода find?


