Нужно руководство по написанию сценария 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