如何在Shell脚本中从.dat文件读取和写入变量?

时间:2019-07-25 08:11:28

标签: bash file calculation

我有一个三列的.dat文件,我想在一个.sh文件中阅读。那么我想通过使用这些变量来计算.sh文件中的内容。

我有一个

之类的parameters.dat文件
5.6 1.5 9.5 
2.6 5.9 3.9
11.6 13.7 2.1

最初,我通过生成一些随机数对它们进行编码。现在,我不想使用随机数,而是想使用一个已经存在的数据文件来做到这一点。

#!/bin/bash


rm scan1.par


for i1 in {1..10..1}

do

 mms1p=$(python -c "import random;print(random.uniform(1, 100))")
 mms2p=$(python -c "import random;print(random.uniform(1, 100))")
 mms3p=$(python -c "import random;print(random.uniform(1, 1000))")


echo mms1p $mms1p >  scan1.par
echo mms2p $mms2p >> scan1.par 
echo mms3p $mms3p >> scan1.par

omg=$(./main scan1.par)

echo $omg >> scan1_result.dat
echo $mms1p $mms2p $mms3p >> scan1_para.dat


done

在这件事上,您能帮我吗? 提前致谢。

1 个答案:

答案 0 :(得分:0)

  

现在,我不想使用随机数,而是想使用一个已经存在的数据文件来做到这一点。

然后read the file line by line, field by field

#!/bin/bash
while read -r mms1p mms2p mms3p; do
   : your script that uses mms1p mms2p mms3p variables
done < parameters.dat
  

如何在Shell脚本中从.dat文件读取和写入变量?

您可以将变量写入文件的方法。之后,使用与上述相同的方法逐行,逐字段读取文件。如果您需要同时读取两个文件,请使用ex。 paste scan1_result.dat scan1_para.dat将文件的行合并在一起,然后逐行逐行读取它们。