Может кто-нибудь мне помочь? Я хотел бы, чтобы нумерованный табличный файл в UNIX зависел от столбцов в этом файле. Тем не менее, последний столбец из некоторых строк имеет одинаковые буквы и длину между ними, но в другом порядке, и его следует считать одинаковым, если другие предыдущие столбцы тоже совпадают. Таким образом, ввод выглядит как
rs758613821 574290 insertion_inframe P 285 AAAP
rs758613821 574290 insertion_inframe P 285 APAA
rs758613821 574290 insertion_inframe P 285 APLA
rs1367252071 574290 deletion_inframe CADDL 134 F
rs538 3246 frameshift_variant F 97 FGLYP
rs538 3246 frameshift_variant F 97 PYFLG
И вывод должен быть
1 rs758613821 574290 insertion_inframe P 285 AAAP
1 rs758613821 574290 insertion_inframe P 285 APAA
2 rs758613821 574290 insertion_inframe P 285 APLA
3 rs1367252071 574290 deletion_inframe CADDL 134 F
4 rs538 3246 frameshift_variant F 97 FGLYP
4 rs538 3246 frameshift_variant F 97 PYFLG
и так далее ...
Таким образом, я выполнил код следующим образом
awk 'BEGIN {FS=OFS="\t"} function intern(sym) { if (sym in table)
return table[sym]
return table[sym] = ++counter }
{ print intern($1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6), $0 }' "input" > "output";
Тем не менее, я не решил проблему, связанную с последним столбцом, чтобы присвоить тот же номер, если одинаковые буквы и длина, хотя и в другом порядке. Возможно ли это сделать в среде UNIX? Я думаю, может быть, с помощью функции substr или подобного, но я не уверен, что будет правильным кодом. Заранее спасибо за поддержку и помощь!