我有一个数值文件,需要多次编辑并保存为单独的文件。
例如
- θ = 0.0 度 ---> θ = 30.0 度
- r = 1.0 ---> r= 4.0
- 把,模具,visual_1_0;---> 放,模具,visual_r_theta;
然后需要将文件保存为编辑值的函数,例如 n2o_r_theta.inp
对于编辑我已经尝试过
#!/bin/bash
for i in {1..6}
do
r = 1.0
theta = i*15.0
cat n2o.inp |
sed -i.bk -Ee "s/(theta = )/\1${theta}\2/" \
-e "s/(r = )/\1${r}\2/" \
-e "s/(put, molden, )/\1visual_${r}_${theta};\2/" n2o_${r}_${theta}.inp
done
给我以下错误
- editor.scr:第 5 行:r:找不到命令
- editor.scr:第 6 行:theta:找不到命令
- sed: -e 表达式 #1, char 18: 's' 命令的 RHS 上的无效引用 \2
最好的情况是这个脚本是否可以在 theta 和 r 上进行 2 次循环。我使用 sed 编辑脚本中的 url 字符串作为我的主要参考。
最终结果- 允许我延迟并行化 molpro 脚本,因为它具有不稳定的多维实现
LC_ALL=C
for j in {4..4}
do
for i in {1..6}
do
r=$(echo "scale=1; $j/2.0" | bc -l)
theta=$(echo "scale=1; $i * 15.0" | bc -l)
sed "s/theta = 0.0/theta = $theta/;
s/rnn = 1.0 ang/rnn = $r ang/;
s/visual/visual_r_${r}_theta_${theta}/" < master.inp >n2o_r_${r}_theta_${theta}.inp
molpro2010s n2o_${r}_${theta}.inp &
done
done