Я пытаюсь отредактировать элемент массива, чтобы преобразовать формат # 1: # 2, # 3, ... так, чтобы # 1 показывал имя файла, а # 2- # n показывал их полные имена файлов, и иметь количество # 2- # n.
<РЕДАКТИРОВАТЬ>
12: 12,13 означает:
Для записи $ {names} «12» существуют записи в $ {names}, так что записи 12 и 13 являются дубликатами
Содержимое $ {merge}
key: 0 value: 12:12,13
key: 1 value: 18:18,19
Некоторое содержимое $ {name} (только последняя часть $ {path}
key: 12 value: j.smith
key: 13 value: j.smith
key: 18 value: test
key: 19 value: test
Некоторое содержимое $ {path}
key: 12 value: ./testDir/first/j.smith
key: 13 value: ./testDir/j.smith
key: 18 value: ./testDir/second/test
key: 19 value: ./testDir/third/test
Моя попытка:
for ix in "${merge[@]}"
do
# Remove "#:" from "#:#,#" string and pass #,# into awk
echo ${ix} | sed s/[0-9]*:// | awk -v name="${name[*]}" '
{
FS=",";
print "\File: ",$name," Number of Matches:",NF;
for (ix=0; ix<NF; ix++)
{
print $ix,": ",$path[$ix];
};
print "END"; }'
done
Это то, что я получаю
File: 12,13 Number of Matches: 1
12,13 : 12,13
END
File: 18,19 Number of Matches: 1
18,19 : 18,19
END
Что я пытаюсь получить:
Файл: j.smith
Количество матчей: 2
./testDir/first/j.smith
./testDir/j.smith
Файл: тест
Количество матчей: 2
./testDir/second/test
./testDir/third/test