if you want to preserve white-space, you better forget about fields and work with indexes on the string, match is your friend:
% echo '1 3 4 8' | awk '{match($0, /[ \t]*[^ \t]+[
\t]+/);a=RLENGTH+1;match(substr($0, a), /[ \t]/);print
substr($0,0,a-1) "hell" substr($0,RSTART+a)}'
1 hell 4 8
this is indeed a bit OT here, maybe next time you prefer trying in
#awk at freenode, where this kind of problems are welcomed
--
- yiyus || JGL . 4l77.com
