2013-03-20 78 views
0

平均I具有在那個文件中像這樣的輸入文件中的每個列由標籤空間查找字段中

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列所有領域的平均值。

回答

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;