1*13d33726Schristosecho T.nextfile: tests of nextfile command 2*13d33726Schristos 3*13d33726Schristosawk=${awk-../a.out} 4*13d33726Schristos 5*13d33726Schristos# 1st lines of some files 6*13d33726Schristosrm -f foo0 7*13d33726Schristosfor i in T.* 8*13d33726Schristosdo 9*13d33726Schristos sed 1q $i >>foo0 10*13d33726Schristosdone 11*13d33726Schristos 12*13d33726Schristos$awk ' 13*13d33726Schristos{ print $0; nextfile } # print first line, quit 14*13d33726Schristos' T.* >foo1 15*13d33726Schristos 16*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 1' 17*13d33726Schristos 18*13d33726Schristos$awk ' # same test but in a for loop 19*13d33726Schristos{ print $0; 20*13d33726Schristos for (i = 1; i < 10; i++) 21*13d33726Schristos if (i == 1) 22*13d33726Schristos nextfile 23*13d33726Schristos print "nextfile for error" 24*13d33726Schristos} # print first line, quit 25*13d33726Schristos' T.* >foo1 26*13d33726Schristos 27*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 1f' 28*13d33726Schristos 29*13d33726Schristos$awk ' # same test but in a while loop 30*13d33726Schristos{ print $0; 31*13d33726Schristos i = 1 32*13d33726Schristos while (i < 10) 33*13d33726Schristos if (i++ == 1) 34*13d33726Schristos nextfile 35*13d33726Schristos print "nextfile while error" 36*13d33726Schristos} # print first line, quit 37*13d33726Schristos' T.* >foo1 38*13d33726Schristos 39*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 1w' 40*13d33726Schristos 41*13d33726Schristos$awk ' # same test but in a do loop 42*13d33726Schristos{ print $0; 43*13d33726Schristos i = 1 44*13d33726Schristos do { 45*13d33726Schristos if (i++ == 1) 46*13d33726Schristos nextfile # print first line, quit 47*13d33726Schristos } while (i < 10) 48*13d33726Schristos print "nextfile do error" 49*13d33726Schristos} 50*13d33726Schristos' T.* >foo1 51*13d33726Schristos 52*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 1d' 53*13d33726Schristos 54*13d33726Schristos 55*13d33726Schristos# 100 lines of some files 56*13d33726Schristosrm -f foo0 57*13d33726Schristosfor i in T.* 58*13d33726Schristosdo 59*13d33726Schristos sed 100q $i >>foo0 60*13d33726Schristosdone 61*13d33726Schristos 62*13d33726Schristos$awk ' 63*13d33726Schristos{ print } 64*13d33726SchristosFNR == 100 { nextfile } # print first line, quit 65*13d33726Schristos' T.* >foo1 66*13d33726Schristos 67*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 2' 68*13d33726Schristos 69*13d33726Schristos 70*13d33726Schristos>foo0 # empty 71*13d33726Schristos$awk ' { nextfile; print $0 }' T.* >foo1 72*13d33726Schristos 73*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 3' 74*13d33726Schristos 75*13d33726Schristos# skip weird args 76*13d33726Schristosrm -f foo0 77*13d33726Schristosfor i in T.* 78*13d33726Schristosdo 79*13d33726Schristos sed 1q $i >>foo0 80*13d33726Schristosdone 81*13d33726Schristos 82*13d33726Schristos$awk ' 83*13d33726Schristos{ print $0; nextfile } # print first line, quit 84*13d33726Schristos' T.* >foo1 85*13d33726Schristos 86*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 4' 87