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 ---