file.txt:
INTS11:P446P&INTS11:P449P&INTS11:P518P&INTS11:P547P&INTS11:P553P
PLCH2:A1007int&PLCH1:D987int&PLCH2:P977L
Я пытаюсь создать гиперссылку путем преобразования содержимого файла. Гиперссылка будет иметь следующий стиль:
somelink&gene=<gene>[&gene=<gene>]&mutation=<gene:key>[&mutation=<gene:key>]
, где INTS11:P446P
соответствует gene:key
, например
Проблема в том, что я зацикливаюсь на каждой строке, чтобы создать массив, который содержит genes
в качестве значений и, таким образом, можно найти несколько дублированных записей для одного и того же gene
.
Моя попытка состоит в следующем
- Разделить на
&
и сохранить в a
- Для каждого элемента в
a
, разделить на :
и добавить a[i]
в массив b
Проблема в том, что я не знаю Как получить уникальные значения из моего массива. Я нашел этот вопрос , но он говорит о файлах, а не массивах, как в моем случае.
Код:
awk '@include "join"
{
split($0,a,"&")
for ( i = 1; i <= length(a); i++ ) {
split(a[i], b, ":");
genes[i] = "&gene="b[1];
keys[i] = "&mutation="b[1]":"b[2]
}
print "somelink"join(genes, 1, length(genes),SUBSEP)join(keys, 1, length(keys),SUBSEP)
delete genes
delete keys
}' file.txt
выведет:
somelink&gene=INTS11&gene=INTS11&gene=INTS11&gene=INTS11&gene=INTS11&mutation=INTS11:P446P&mutation=INTS11:P449P&mutation=INTS11:P518P&mutation=INTS11:P547P&mutation=INTS11:P553P
somelink&gene=PLCH2&gene=PLCH1&gene=PLCH2&mutation=PLCH2:A1007int&mutation=PLCH1:D987int &mutation=PLCH2:P977L
Я буду sh, чтобы получить что-то подобное (обратите внимание, сколько &gene=
есть):
somelink&gene=INTS11&mutation=INTS11:P446P&INTS11:P449P&INTS11:P518P&INTS11:P547P&INTS11:P553P
somelink&gene=PLCH2&gene=PLCH1&mutation=PLCH2:A1007int&mutation=PLCH1:D987int&mutation=PLCH2:P977L
РЕДАКТИРОВАТЬ:
моя проблема была частично решена благодаря решению Пьера Франсуа ответ, который был SUBSEP
. Другая моя проблема в том, что я хочу получать только уникальные элементы из моих массивов genes
и keys
.
Спасибо.