On Wed, 20 Nov 2013, Kathryn Hogg wrote: > On 2013-11-20 00:16, Mike Miller wrote: > >> On Tue, 19 Nov 2013, Kathryn Hogg wrote: > > BEGIN is a special pattern that is applied once before any lines are > read. My second line doesn't have a pattern so its applied to all lines. > >> >> echo "a;2; 3;4;5 ;abcdefghijk;7;8;9" | awk -F';' 'BEGIN { OFS=";"} >> {$6=substr($6, 0, 3); print $0;}' >> a;2; 3;4;5 ;abc;7;8;9 >> >> echo "a;2; 3;4;5 ;abcdefghijk;7;8;9" | awk -F';' '{OFS=";"} >> {$6=substr($6, 0, 3); print $0}' >> a;2; 3;4;5 ;abc;7;8;9 > > The difference here is that in the first case, OFS is set exactly once > at the beginning of the script. In the second, OFS is set for every > line that is read from the file. Its a bit wasteful but not too bad. Does that mean that with BEGIN it will run a little faster? Did the semicolon at the end do anything? As in "print $0;}" Thanks, Kathryn! Mike