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