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 93.76 26.48 1.95 77.78 68.02 1 0.006 0 0.000 0 0.000 0.006 8 # 0.00 93.76 71.58 1.95 77.78 68.02 1 0.006 0 0.000 0 0.000 0.006 9 # 0.00 93.76 73.58 1.95 77.78 68.02 1 0.006 0 0.000 0 0.000 0.006 10 # 0.00 93.76 73.58 1.95 77.78 68.02 1 0.006 0 0.000 0 0.000 0.006 11 # 0.00 93.76 73.58 1.95 77.78 68.02 1 0.006 0 0.000 0 0.000 0.006 12 # 0.00 93.76 75.58 1.95 77.78 68.02 1 0.006 0 0.000 0 0.000 0.006 13 # 0.00 93.76 75.58 1.95 77.78 68.02 1 0.006 0 0.000 0 0.000 0.006 14 # 0.00 93.76 77.58 1.95 77.78 68.02 1 0.006 0 0.000 0 0.000 0.006 15 # 0.00 93.76 77.58 1.95 77.78 68.02 1 0.006 0 0.000 0 0.000 0.006 16 # 0.00 93.76 77.58 1.95 77.78 68.02 1 0.006 0 0.000 0 0.000 0.006 17 18 BEGIN { 19 headerlines=0; datalines=0; totallines=0 20 } 21 22 /^ S0 S1 E O M CCS YGC YGCT FGC FGCT CGC CGCT GCT $/ { 23 headerlines++; 24 } 25 26 /^[ ]*[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]+$/ { 27 datalines++; 28 } 29 30 { totallines++; print $0 } 31 32 END { 33 if ((headerlines == 1) && (datalines == 10)) { 34 exit 0 35 } else { 36 exit 1 37 } 38 }