Как получить разницу в путях к файлам между SRC и DEST и заменить термины при необходимости

groovy -e "def output=args[0]; def terms = args[1].split(','); terms.each { it -> def keyValues = it.split(':'); output = output.replaceAll(keyValues[0],keyValues[1]); } println output;" "`diff -rq . SRC DEST`" "old1:new1,old2:new2"


Эта команда Groovy выполняет следующее:

diff -rq . SRC DEST сравнивает рекурсивно содержимое директории «.» (текущей) с директориями «SRC» и «DEST», и выводит разницу в путях к файлам.
— Затем она передает результат этой команды в Groovy-скрипт, который выполняется с помощью флага -e.
— В Groovy-скрипте разбирается результат и выполняется замена терминов. Новые термины указываются в виде «old:new» и разделяются запятыми.
— Результат с замененными терминами выводится на экран.

Альтернативы: Можно использовать другие инструменты для сравнения файлов, такие как rsync, и после этого применить замену терминов с использованием других инструментов, например, sed.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *