I will provide a script that reads file line by line; each line is an array and will iterate over value by value over an array. Hope it helps.
file.txt
ob_No ob_kind ob_value ob_lat ob_lon ob_depth ob_time
1 S 36.045 44.1432 12.5701 1.6 201303210000
Script
#!/usr/bin/env bash
# author : Daniel Leybovich
# SO : http://stackoverflow.com/questions/27981928/bash-for-loop-strings-with-spaces
FILE=${1}
while read LINE
do
declare -a ROW
ROW=($(echo ${LINE}))
COLS=${#ROW[@]}
echo "LINE : .... ${LINE}"
echo "COLS NUM: .... ${COLS}"
echo "----------------------"
echo "value by value: "
for INDEX in $(seq 0 $((COLS - 1)))
do
echo -e "\tCOL[${INDEX}] = ${ROW[${INDEX}]}"
done
echo '========================================='
done < ${FILE}
exit 0
Output
daniel@synapse:/tmp$ ./so27981928.sh file.txt
LINE : .... ob_No ob_kind ob_value ob_lat ob_lon ob_depth ob_time
COLS NUM: .... 7
----------------------
value by value:
COL[0] = ob_No
COL[1] = ob_kind
COL[2] = ob_value
COL[3] = ob_lat
COL[4] = ob_lon
COL[5] = ob_depth
COL[6] = ob_time
=========================================
LINE : .... 1 S 36.045 44.1432 12.5701 1.6 201303210000
COLS NUM: .... 7
----------------------
value by value:
COL[0] = 1
COL[1] = S
COL[2] = 36.045
COL[3] = 44.1432
COL[4] = 12.5701
COL[5] = 1.6
COL[6] = 201303210000
=========================================
EDIT [minor script improvements]
#!/usr/bin/env bash
# author : Daniel Leybovich
# create a temporary file
TABLE=$(mktemp)
# populate file with tabular data
cat << EOF >> ${TABLE}
col1 col2 col3 col4
[0,0] [0,1] [0,2] [0,3]
[1,0] [1,1] [1,2] [1,3]
EOF
# count line numbers
declare -i LN=0
# iterate over matrix rows
while read LINE; do
echo "-------------------------------------------------------------------"
declare -a ROW
ROW=(${LINE})
COLS=${#ROW[@]}
echo "LINE NO# ....... ${LN}"
echo "COLUMNS ....... ${LINE}"
echo "COLUMNS NUM .... ${COLS}"
# iterate over values
for INDEX in $(seq 0 $((COLS - 1)));do
echo -e "\tCOL[${INDEX}] = ${ROW[${INDEX}]}"
done
# increment line counter
let LN=$((LN + 1))
done < ${TABLE}
# clean up
rm -rf ${TABLE}
# we are done
exit 0
OUTPUT
daniel@synapse:/tmp$ ./arrays_2d.sh
-------------------------------------------------------------------
LINE NO# ....... 0
COLUMNS ....... col1 col2 col3 col4
COLUMNS NUM .... 4
COL[0] = col1
COL[1] = col2
COL[2] = col3
COL[3] = col4
-------------------------------------------------------------------
LINE NO# ....... 1
COLUMNS ....... [0,0] [0,1] [0,2] [0,3]
COLUMNS NUM .... 4
COL[0] = [0,0]
COL[1] = [0,1]
COL[2] = [0,2]
COL[3] = [0,3]
-------------------------------------------------------------------
LINE NO# ....... 2
COLUMNS ....... [1,0] [1,1] [1,2] [1,3]
COLUMNS NUM .... 4
COL[0] = [1,0]
COL[1] = [1,1]
COL[2] = [1,2]
COL[3] = [1,3]