Нужно руководство по написанию сценария Unix для сравнения файлов в исходном и целевом каталогах

Я хочу написать сценарий Unix, где:

исходный каталог:/test1/jobs/def1,def2,def3.... и так далее целевой каталог:/test2/jobs/def1,def2,def3.... и так далее

Сценарий 1: я хочу сравнить эту папку заданий в исходном и целевом каталогах с одинаковым количеством файлов, таких как def1, def2, def3 и т. д., и если в цели не найден какой-либо файл, он должен зафиксировать эту несоответствие в файле журнала.,

сценарий 2: теперь, когда проверка уровня файла выполнена:

исходный каталог:/test1/jobs/def1,def2,def3,mam1,mam2,mam3,mam4,try1,try2,try3,cus1,cus2,cus3,kit1,kit2,kit3..... и так далее

target dir:/test2/jobs/def1,def2,def3,mam1,mam2,mam3,mam4,try1,try2,try3,cus1,cus2,cus3,kit1,kit2,kit3..... и так далее

Теперь мне нужно написать скрипт, в котором я должен передать входной параметр во время выполнения в виде строки, например, например, если я даю 'def', то скрипт должен сравнивать содержимое файлов, начинающихся с def, только из исходного кода, чтобы нацелить не все остальные, и если содержимое не соответствует, чем должно быть записано в моем файле журнала.

Буду признателен за любую оказанную помощь. Заранее спасибо. J

1 ответ

Вам не нужен сценарий. Что вам нужно, это инструмент, созданный для сравнения файлов и / или каталогов. Вы можете попробовать Meld или Git.

Например, вот пример того, как это можно сделать с помощью Git:

$ cd test1
$ git init
$ git add .
$ git commit -m "Add source files"
$ git branch -M master source
$ cd ../test2
$ mv ../test1/.git .
$ git checkout -b target
$ git add .
$ git commit -m "Add target files"

Это настраивает вас с помощью Git-репозитория, который содержит как исходные, так и целевые файлы. Тогда вы можете сравнить их так:

$ git diff source target             # Compares everything
$ git diff source target jobs/def*   # Compares only "def" directories
Другие вопросы по тегам