我有一个data.dat包含 3 列的文件 ( )。我想用 shell 脚本读入其中的两个并将内容填充到模板文件中。该文件如下所示:
12 180 2390
14 177 2210
16 173 2130
...
Run Code Online (Sandbox Code Playgroud)
到目前为止,我可以用一个变量(数据文件中的第 2 列)来做到这一点,如下所示:
for a in `cat data.dat | gawk '{print $2}'`; do
sed s/A/$a/ daily.template daily.template > daily.inp
done
Run Code Online (Sandbox Code Playgroud)
现在我也想读取第 3 列,并将与第 2 列相同的行的相应值 (b) 赋予相同的模板。该模板包含名为“A”和“B”的变量。我不能做嵌套的 for 循环,因为我不想在 b 的每个值上迭代 a 的每个值。
我怎样才能做到这一点?
添加:
首先感谢大家的帮助!
是的,如果我提供有关 daily.template 文件的更多信息,可能会更容易理解。它看起来类似于:
dens_column O3 300.00
dens_column h20 B
sza A
day_of_year 172
output sum
...
Run Code Online (Sandbox Code Playgroud)
A 和 B 应该在每一行的每个循环中被替换。data.dat 中的第一列没有任何意义,它只是显示测量的时间,“daily.inp”中不需要此参数。我只想要一个“daily.inp”用于每一行,其中 A 和 B 被替换为相应行中第 …