Вы комментируете, зная расположение, и файл сопоставления вызывает у меня подозрение, что ваш пример, похоже, сделал не совсем то, о чем вас спрашивают, - но вам кажется, что вы хотите переформатировать каждый набор табуляции с разделителями LOC=
значения в строку с их UUID впереди.
Если это так, то сработает:
awk ' BEGIN {OFS=FS=";"} {split($2,locs,"\t"); for (n in locs) { print $1,locs[n]}}'
Дано:
$ cat -A data.txt
01234;LOC_1=ABC^ILOC_1=BCD^ILOC_2=CDE$
56789;LOC_2=DEF^ILOC_3=EFG$
Тогда:
$ awk ' BEGIN {OFS=FS=";"} {split($2,locs,"\t"); for (n in locs) { print $1,locs[n]}}' data.txt
01234;LOC_1=ABC
01234;LOC_1=BCD
01234;LOC_2=CDE
56789;LOC_2=DEF
56789;LOC_3=EFG
Блок BEGIN {OFS=FS=";"}
устанавливает разделитель входа и выхода на;.
Затем для каждой строки мы разбиваем второе поле на массив с именем locs, разделяя его на табуляцию, через - split($2,locs,"\t")
А затем перебрать locs, печатая UUID и каждое значение loc - for (n in locs) { print $1,locs[n]}