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      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT   
   7 #  0.00  96.88  66.55   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
   8 #  0.00  96.88  71.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
   9 #  0.00  96.88  73.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
  10 #  0.00  96.88  73.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
  11 #  0.00  96.88  73.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
  12 #  0.00  96.88  75.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
  13 #  0.00  96.88  75.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
  14 #  0.00  96.88  77.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
  15 #  0.00  96.88  77.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
  16 #  0.00  96.88  77.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
  17 #  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT   
  18 #  0.00  96.88  79.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
  19 
  20 BEGIN   {
  21             headerlines=0; datalines=0; totallines=0
  22             datalines2=0;
  23         }
  24 
  25 /^  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     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]+[ ]*[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) && (datalines2 == 1)) {
  40                 exit 0
  41             } else {
  42                 exit 1
  43             }
  44         }
--- EOF ---