1 #
   2 # matching the following output specified as a pattern that verifies
   3 # that the numerical values conform to a specific pattern, rather than
   4 # specific values.
   5 #
   6 #  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
   7 #  0.00  99.99  66.81   1.24  26.55      1    0.028     0    0.000    0.028
   8 #  0.00  99.99  68.81   1.24  27.84      1    0.028     0    0.000    0.028
   9 #  0.00  99.99  70.81   1.24  27.84      1    0.028     0    0.000    0.028
  10 #  0.00  99.99  70.81   1.24  27.84      1    0.028     0    0.000    0.028
  11 #  0.00  99.99  70.81   1.24  27.84      1    0.028     0    0.000    0.028
  12 #  0.00  99.99  72.81   1.24  27.84      1    0.028     0    0.000    0.028
  13 #  0.00  99.99  72.81   1.24  27.84      1    0.028     0    0.000    0.028
  14 #  0.00  99.99  74.81   1.24  27.84      1    0.028     0    0.000    0.028
  15 #  0.00  99.99  74.81   1.24  27.84      1    0.028     0    0.000    0.028
  16 #  0.00  99.99  76.81   1.24  27.85      1    0.028     0    0.000    0.028
  17 #  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
  18 #  0.00  99.99  76.81   1.24  27.85      1    0.028     0    0.000    0.028
  19 
  20 BEGIN   {
  21             headerlines=0; datalines=0; totallines=0
  22             datalines2=0;
  23         }
  24 
  25 /^  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   $/  {
  26             headerlines++;
  27         }
  28 
  29 /^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/        {
  30             if (headerlines == 2) {
  31                 datalines2++;
  32             }
  33             datalines++;
  34         }
  35 
  36         { totallines++; print $0 }
  37 
  38 END     { 
  39             if ((headerlines == 2) && (datalines == 11) && (totallines == 13) && (datalines2 == 1)) {
  40                 exit 0
  41             } else {
  42                 exit 1
  43             }
  44         }