0

各列がタブスペースで区切られているファイルに、このような入力ファイルがあります

22 2222 .  T    C   .   .   ;AA=1;AFE=1;ASNE=1;EUN=1;AFW=1;MED=1;LAT=1;
22 222  .  T    C   .   .   ;AA=2;AFE=2;ASNE=2;EUN=2;AFW=2;MED=2;LAT=2;

次のような出力が必要です

22 2222 .  T    C   .   . ;AA=1;AFE=1;ASNE=1;EUN=1;AFW=1;MED=1;LAT=1;AVG=1;
22 222  .  T    C   .   . ;AA=2;AFE=2;ASNE=2;EUN=2;AFW=2;MED=2;LAT=2;AVG=2;

AVG は、8 列目のすべてのフィールドの平均です。

4

1 に答える 1

0

これが途中です:

awk '{c=0;for(i=2;i<=NF;i++){split($i,d,"=");c+=d[2]}$NF="AVG="c/(NF-2)FS}1' FS=';' OFS=';' file
    22 2222 .  T    C   .   .   ;AA=1;AFE=1;ASNE=1;EUN=1;AFW=1;MED=1;LAT=1;AVG=1;
    22 222  .  T    C   .   .   ;AA=2;AFE=2;ASNE=2;EUN=2;AFW=2;MED=2;LAT=2;AVG=2;
于 2013-03-20T11:03:29.717 に答える