Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 读取文本文件内部的内容,并将每列定义为一个新变量_Linux_Bash_Unix_Centos_Gawk - Fatal编程技术网

Linux 读取文本文件内部的内容,并将每列定义为一个新变量

Linux 读取文本文件内部的内容,并将每列定义为一个新变量,linux,bash,unix,centos,gawk,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 < /soft

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

我需要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

希望对你有帮助。这样你就能做到

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

问候

脚本

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
RES:BOS
VAR:res=BOS
RES:LSC
VAR:res=LSC
问候

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