我有两个这种格式的文本文件:
文件-1:
Class Pos Ref Alt Raw_score Actual_Score
1 50203 Y E -0.00254 3.298
5 6357 G V 1.358 10.685
2 87521 A H 0.6587 6.3354
文件-2:
Class Pos Ref Alt Info
5 6357 G V ACT/wo%%$2.25;56842;ALT
11 25684 H A GEP/hq#$..25;69875;Trans
3 258 G L KPD/ng?~88q68;8954;Inter
如果File-1
的initial four columns
与initial four columns
File-2
匹配,则将单词 Raw_score
和 Actual_score
及其values
放在匹配行的末尾,用;
符号分隔,如下所示:
输出:
5 6357 G V ACT/wo%%$2.25;56842;ALT;Raw_score=1.358;Actual_score=10.685
$ awk '{k=$1FS$2FS$3FS$4}NR==FNR{if(NR>1)a[k]=";"b"="$5";"c"="$6;else{a[k]="";b=$5;c=$6}next}k in a{print $0a[k]}' file1 file2
Class Pos Ref Alt Info
5 6357 G V ACT/wo%%$2.25;56842;ALT;Raw_score=1.358;Actual_Score=10.685
如果您不理解该脚本,请阅读 Arnold Robbins 的《Effective Awk Programming, 4th Edition》一书,并修改脚本以包含空白字符、换行符、缩进、有意义的变量名称等,使其更清晰 - 这样做将帮助您学习语言。