- 论坛徽章:
- 4
|
本帖最后由 christmas1102 于 2018-05-14 19:32 编辑
原文件:a1.txt- Bacteria 0.001294883 0.003301197 0.002344941 0.002723813 0.003755733 0.002683822 0.006859545 0.008077043 0.007712926 0.009756361 0.009024885 0.011141175
- Bacteria|Acidobacteria|Acidobacteria|Acidobacteriales|Acidobacteriaceae_(Subgroup_1) 0.017988381 0.029448175 0.021260796 0.030242339 0.031707053 0.036942022 0.012391437 0.012736875 0.023138778 0.009918068 0.01361743 0.019258316
- Bacteria|Acidobacteria|Acidobacteria|Acidobacteriales|Acidobacteriaceae_(Subgroup_1)|Acidobacterium 0.000699937 0.000750272 0.001094306 0.001361907 0.001119497 0.001420847 0 0.000207104 5.47E-05 5.39E-05 0 0
复制代码 然后处理文本使用的awk代码:
- awk '{for(i=2;i<=NF;i++){a[$1,i]+=$i}b[$1]}END{for(i in b){printf(i);for(j=2;j<=NF;j++){printf " "a[i,j]};print ""}}' a1.txt
复制代码 求解答下这段代码是什么意思,for(i=2;i<=NF;i++) 是从第2个NF开始遍历,然后就看不懂了,a[$1,i] 没赋值,那就是 0 或者空,但是 0+a 或 ""+a 都 =0 啊,再往后的就更看不懂了,整段大概就是个 二维数组的赋值,打印过程吧?
|
|