bash 文本文件转置,添加新列,重新做一个大两列

bash text file transpose, add new column and make one big two-column again

我有一个很大的文本文件:

modularity_class;keys;columna1;columna2;columna3;
1;Antimalarial;Borneo;Cytotoxicity;Indonesia
0;Africa;malaria;morbidity;mortality
6;Anopheles albimanus;compression sprayer;house?spraying;;
12;;;;Tanzania;;

最终结果应该是:

Antimalarial;1
Borneo;1
Cytotoxicity;1
Indonesia;1
Africa;0
malaria;0
morbidity;0
mortality;0
Anopheles albimanus;6
compression sprayer;6
house?spraying;6
Tanzania;12

如您所见,我需要:

我读过 awksedtr 等等……但我不知道如何以有效的方式获得它。

注意:每行可能有不同的长度或元素。

简单 awk 应该可以解决问题:

awk -F';' 'NR>1 {
    for(i=2; i<=NF; i++) {
        if($i!="")
            print $i FS 
    }
}' file

一行:

awk -F';' 'NR>1 { for(i=2; i<=NF; i++) { if($i!="") print $i FS  } }' file