我有一个这样的文件:
head 1kG_MDS6.bim
1 rs2073813 0 753541 A G
1 rs60320384 0 769223 G C
1 rs59066358 0 771967 A G
...
我想连接第一、第四、第六和第五列(按顺序),并用“:”分隔
所以输出看起来像这样:
1:753541:G:A
1:769223:C:G
1:771967:G:A
我试过这个:
awk ' { print $1 $4 $6 $5 ":" $NF } ' 1kG_MDS6.bim > 1kG_MDS6_SNPs1.txt
但它仅与最后两列“:”连接
答案1
使用输出字段分隔符。
awk 'BEGIN{OFS=":"} {print $1,$4,$6,$5}' file
输出:
1:753541:G:A 1:769223:C:G 1:771967:G:A
答案2
使用 printf
awk ' { printf "%s:%s:%s:%s\n",$1,$4,$6,$5; } '
在哪里
%s
将被匹配的参数替换为字符串。\n
将为每个已处理的行添加换行符