The classical approach is:
RESULT="$(echo "$LINE"| awk '{print $1}')" # executes in a sub-shell
Processing thousands of lines this way however fork()’s thousands of processes, which affects performance and makes your script CPU hungry.
Here is the effective solution which I found with my colleagues at work:
COLS=( $LINE ); # parses columns without executing a sub-shell
RESULT="${COLS[0]}"; # returns first column (0-based indexes)
Here is an example:
LINE="col0 col1 col2 col3 col4 " # white-space including tab chars
COLS=( $LINE ); # parses columns without executing a sub-shell
echo "${COLS[0]}"; # prints "col0"
echo "${COLS[1]}"; # prints "col1"
echo "${COLS[2]}"; # prints "col2"
echo "${COLS[3]}"; # prints "col3"
echo "${COLS[4]}"; # prints "col4"
If you want to split not by white-space but by any other character, you can temporarily change the IFS variable which determines how Bash recognizes fields and word boundaries.

Nice
You should add a little bit of context to make it more obvious (wrap it in a loop).
Done, thanks for the comment.