Я новичок в bash, и мне трудно обрабатывать древовидные структуры каталогов.У меня есть структура каталогов, которая выглядит следующим образом:
I/A/dataA.dat
I/B/dataB.dat
I/C/dataC.dat
II/A/dataA.dat
II/B/dataB.dat
II/C/dataC.dat
III/A/dataA.dat
III/B/dataB.dat
III/C/dataC.dat
Теперь я хочу обработать I/A/dataA.dat
с помощью I/B/dataB.dat
и аналогично II/A/dataA.dat
с II/B/dataB.dat
и т. Д. (Для каждого случая).Но я не хочу обрабатывать, например, I/A/dataA.dat
с II/B/dataB.dat
.
Как лучше всего найти такие пары файлов?
Iхочу передать имена найденной пары в функцию bash, например:
function process_pair()
{
fileOne=$1; #for example II/A/data.dat
fileTwo=$2; #for example II/B/data.dat
//the rest of the function that processes this pair.
}
, но я не знаю, как получить переменные $1
и $2
.
IВ настоящее время я использую bash и начинаю с команды dirs=find $SOURCE -type d -links 2
(чтобы найти все конечные каталоги - адаптировано из этого вопроса ).Затем я пытаюсь зациклить их (используя команды подстроки, чтобы получить каталог выше).Однако я нахожу это трудным, и я думаю, что должен быть лучший путь.