读取内部文本文件并将每个列定义为新变量

时间:2015-04-14 19:21:48

标签: linux bash unix centos gawk

我有一个包含三列数据的文本文件。

我需要bash来读取文本文件内部,然后将每个列定义为它自己的变量,这个变量在bash脚本中使用得更远。

我一直在尝试使用以下代码但是,它只会读取文本文件的第一行,然后才会失败:

while read line
do
site=`echo ${line} | gawk '{print $1}'`
lat=`echo ${line} | gawk '{print $2}'`
lon=`echo ${line} | gawk '{print $3}'`
done < /software/PLOT_SHARE/lamp_city_text

文本文件数据:

KBOS 42.3629 -71.0064
LSC 44.5357 -72.0286

1 个答案:

答案 0 :(得分:0)

希望它能帮到你。这样你就可以做到!!

如您所见,变量RES包含在执行eval "var=x"时将创建bash变量的命令。这样,bash将为变量值充值

此致

<强> SCRIPT

echo "BOS 42.3629 -71.0064" >> data
echo "LSC 44.5357 -72.0286" >> data
while read line
do
   var1=`eval echo $line | awk '{print "res="$1}'`
   eval `echo $var1 `
   echo "RES:"$res
   echo "VAR:"$var1
done < data

<强> RESULT

RES:BOS
VAR:res=BOS
RES:LSC
VAR:res=LSC

此致!!