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 GCT LGCC GCC 7# 0.00 0.00 0.00 9.97 90.94 87.70 2 0.013 0 0.000 0.013 Allocation Failure No GC 8 9 10BEGIN { 11 headerlines=0; datalines=0; totallines=0 12 } 13 14/^ S0 S1 E O M CCS YGC YGCT FGC FGCT GCT LGCC GCC $/ { 15 headerlines++; 16 } 17 18# The following pattern does not verify the validity of the gc cause 19# string as the values can vary depending on conditions out of our 20# control. To accomodate this variability, the pattern matcher simply 21# detects that there are two strings that match a specific pattern 22# where the first character is a letter followed by a sequence of zero 23# or more letters and spaces. It also provides for the ".", "(", and ")" 24# characters to allow for the string "System.gc()". 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]+[ ]*[a-zA-Z]+[a-zA-Z \.\(\)]*[ ]*[a-zA-Z]+[a-zA-Z \.\(\)]*$/ { 27 datalines++; 28 } 29 30 { totallines++; print $0 } 31 32END { 33 if ((headerlines == 1) && (datalines == 1)) { 34 exit 0 35 } 36 else { 37 exit 1 38 } 39 } 40