shell问答13:一个awk处理文件的例子

发表于:2007-07-04来源:作者:点击数: 标签:
声明:俺只是收集和整理shell版中的问题 解决方案 ,以便学习之用,学习并非原创。在此要感谢shell版的大虾小虾们!也许有一天,可以出个《shell精彩问答集》,来方便更多的人学习shell,使用shell。 1.原始文件 CS 100432= 8.0, 7.4, 6.9, 8.0, 5.0, 4.9, 7

声明:俺只是收集和整理shell版中的问题解决方案,以便学习之用,学习并非原创。在此要感谢shell版的大虾小虾们!也许有一天,可以出个《shell精彩问答集》,来方便更多的人学习shell,使用shell。

1.原始文件
  CS    100432=   8.0,   7.4,   6.9,   8.0,   5.0,   4.9,   7.4,   8.0,   9.2,
  CS    100441=   8.0,   7.9,   7.8,   7.9,   7.7,   6.6,   4.1,   9.0,   8.4,
  CS    100450=   9.0,   9.5,   9.4,   8.2,   8.1,   4.5,   9.3,   8.1,   3.7,
  CS    100459=   4.2,   4.9,   7.9,   7.9,   9.1,   8.5,   7.9,   6.1,   7.9,
  CS    100468=   7.9,   7.9,   7.9,   4.8,   8.5,   9.1,   9.1,   9.1,   9.8,
  CS    100477=   9.8,   9.1,   9.3,  10.6,   9.3,   8.0,   8.0,   9.3,  9.3,
  CS    100486=   9.4,   8.2,   8.2,   8.2,   5.7,   6.6,   8.5,   7.6,   8.4,
  CS    100495=   4.6,   6.5,   8.4,   6.5,   6.6,   6.6,   6.0,   3.6,   1.1,
  CS    100504=   8.6,   7.4,   7.4,   6.9,   8.0,   7.5,   8.6,   9.2,   8.5,
  CS    100513=   9.1,   8.5,   8.5,   7.9,   7.8,   7.9,   7.7,   9.0,  11.5,
  CS    100522=  10.9,  11.3,   8.1,   8.1,   8.2,   8.1,   9.4,   8.0,   6.3,
  CS    100531=   3.7,   6.8,   9.2,   9.8,   8.5,   7.9,   7.9,   7.9,   7.9,
  CS    100540=   7.9,   7.9,   7.9,   4.8,   7.9,   8.5,   7.9,   9.1,   7.9,
  CS    100549=   9.1,   9.3,   8.7,   9.3,  10.0,   6.2,   8.7,   6.3,   8.0,
  CS    100558=   6.4,   8.2,   5.7,   8.2,   8.2,   8.3,   4.5,   4.4,   6.5,
  CS    100567=   2.6,   2.0,   6.5,   5.3,   5.3,   6.6,   5.4,   5.5,   3.6,
  CS    100576=   5.0,   6.9,   8.6,   8.0,   8.1,   8.0,   4.9,   3.7,   9.2,
  CS    100585=   9.7,   9.7,   7.8,   7.2,  11.5,   9.6,   7.9,   7.7,   9.5,
  CS    100594=   8.9,  11.4,   6.5,   7.7,   9.4,  10.0,  10.0,   4.5,   8.0,
  CS    100603=   4.9,   5.4,   5.4,   7.9,   7.9,   7.9,   6.1,   7.9,   7.9,
  CS    100612=   7.9,   7.3,   7.8,   7.3,   6.0,   7.9,   8.6,   9.1,   9.1,
  CS    100621=   9.1,   9.4,   9.4,   9.3,   8.1,   4.9,   4.3,   7.4,   8.8,
  CS    100630=   9.3,  10.2,   8.3,   4.5,   6.4,   8.2,   5.2,   6.4,   4.4,
  CS    100639=   6.5,   4.0,   7.1,   6.5,   9.2,   6.6,   8.5,   6.0,   3.6,
  CS    100648=   6.8,   8.0,   5.0,   8.0,   6.9,   7.4,   8.0,   5.6,   4.8,
  CS    100657=   8.5,   8.6,   6.6,   6.6,   8.5,   9.0,   7.7,   7.7,   9.5,
  CS    100666=   4.6,   9.5,   8.9,   9.5,   9.4,   3.3,   7.5,   8.1,   8.0,
  CS    100675=   7.4,   6.8,   7.4,   3.6,   7.9,   7.9,   6.1,   5.4,   7.9,
  CS    100684=   9.2,   9.1,   7.9,   7.4,   7.3,   8.5,   8.6,   7.9,   9.2,
  CS    100693=   8.8,   9.4,   9.2,   7.6,   8.1,   6.2,   6.3,  10.1,  10.0,
  CS    100702=   7.5,   5.6,   9.5,   7.6,   9.4,   4.4,   9.0,  10.1,   8.2,
  CS    100711=   9.4,   7.6,   4.0,   9.0,   8.4,   5.9,   6.6,   5.5,   4.3,
  CS    100720=   5.1,   8.3,   5.5,   7.5,   7.2,   7.9,   8.1,   8.5,   3.5,
  CS    100729=   5.1,   7.8,   5.1,   7.8,   8.4,   8.0,   8.7,   7.6,   9.5,
  CS    100738=   8.2,   8.3,   5.1,   9.1,   0.7,   1.7,   8.4,   8.0,   8.0,
  CS    100747=   8.4,   8.6,   7.9,   7.1,   7.3,   7.0,   5.5,   7.0,   7.8,
  CS    100756=   9.1,   9.2,   9.0,   7.2,   7.6,   8.5,   9.2,  10.0,   8.9,
  CS    100765=   8.3,   7.6,   7.6,   5.0,   1.1,   5.6,  10.1,   8.4,   7.9,
  CS    100774=   5.0,   7.8,   8.8,   9.1,   6.6,   8.4,   6.4,   7.9,   6.7,
  CS    100783=  11.9,   9.0,   4.1,   8.4,   8.8,   7.7,   8.4,   8.4,   6.3,
  CS    100792=   7.4,   6.4,   6.8,   6.8,   8.0,   8.0,   8.8,   8.8,   4.4,
  CS    100801=   5.4,   5.4,   6.6,   8.1,   9.7,   7.3,   8.0,   8.2,   8.2,
  CS    100810=   7.3,   1.2,   0.9,   7.6,   7.1,   8.1,   8.7,   7.0,   8.0,
  CS    100819=   7.4,   7.4,   8.0,   8.3,   8.5,   6.1,   7.0,   7.0,   7.8,
  CS    100828=   9.1,  10.2,   9.0,   7.7,   7.7,   8.6,   8.6,   7.7,   7.9,
  CS    100837=   8.5,   8.3,   8.3,   9.2,  10.2,   9.2,   8.2,   7.6,   5.5,
  CS    100846=   8.3,   9.3,   8.8,   7.2,   9.2,   2.8,   7.0,   3.3,   7.7,
  CS    100855=   6.4,   6.5,   3.6,  10.5,   5.9,   6.1,   6.1,   8.4,        
                                                           CS    100863=   6.0,

解决方案:
1.
awk '{gsub(/=/,"");n2=;print "\t"n2"=";for(i=4;i<=NF;i++) {n2+=1;print "\t"n2"="$i}}' clearcase/" target="_blank" >cc.txt
2.
awk -F= '
{
   split(, x, " ");
   split(, y, ",");
   for(i in y)
   {
       printf("%s %s = %4.1f\n", x[1], x[2], y[i]);
       x[2] = x[2]+1;
   }
}' file
3.
nawk 'BEGIN { FS = "," }{
gsub(/CS/,",")
gsub(/\=/,",")
{ for(i = 3; i < NF; i++)
     printf("CS %s=%s,\n", ++,  $i) }
}' filename

unix5.0.5下通过

原文转自:http://www.ltesting.net