Я хочу составить пары слов на основе третьего столбца (идентификатора).Мой файл похож на этот пример:
A ID.1
B ID.2
C ID.1
D ID.1
E ID.2
F ID.3
Результат, который я хочу получить:
A C ID.1
A D ID.1
B E ID.2
C D ID.1
Обратите внимание, что я не хочу получать одну и ту же пару слов в обратном порядке.В моем реальном файле некоторые слова встречаются более одного раза с разными идентификаторами.
Я попробовал этот код, который работает хорошо, но требует много времени (и я не знаю, есть ли избыточности):
counter=2
cat filtered_go_annotation.txt | while read f1 f2; do
tail -n +$counter go_annotation.txt | grep $f2 | awk '{print "'$f1' " $1}';
((counter++))
done > go_network2.txt
Хвост используется для удалениястрока, когда она прочитана.