У меня есть файл path.text. Столбцы разделяются символом "\t".
Первый и второй столбцы имеют вид:
Y123W AB - CD - ED ...
Y948W ED - WG - SG -EG ...
Y9368 AB - UE ...
Y024W AB - UE ...
YOWB3 AB - CD - ED ...
...
Я хочу вывести элементы в первой группе столбцов уникальными элементами во втором столбце. Должно быть так (формат не имеет значения):
AB - CD - ED:
Y123W, YOWB3, ...
AB - UE:
Y9368, Y024W, ...
ED - WG - SG -EG:
Y948W, ...
...
Сначала я попытался прочитать второй столбец в массиве:
pathways=( $(awk -F"\t" '{print $2}' pathway.txt) )
Затем я попытался отсортировать пути, чтобы получить уникальные пути:
uniq=($(printf "%s\n" "${pathways[@]}" | sort -u))
Однако, возможно, из-за того, что элементы второго столбца содержат пробелы " ", массив uniq, который я получил, был в беспорядке.
echo "${uniq[@]}"
Вывод такой:
AB AB AB AB CD CD ...
Я новичок в оболочке. Поэтому я просто попытался добиться этого шаг за шагом, используя Python или R... Пожалуйста, помогите! Большое спасибо