variables.f90
次のように、さまざまな変数を定義する多くの行があるファイルがあります。
integer::n_monomer=6800
real*8::rx=5.0d0
#... randomly integer and real numbers defined
real*8::mu_nano=8.0d0
.......
......
値が何であるかわかりませんmu_nano
。間違いかもしれません。ここで、次のようなbashスクリプトを使用して値を1ずつ増やすように上記のステートメントを変更したいと思います。
real*8::mu_nano=9.0d0
答え1
これはfortran
コードのように見え、高度な言語ソースコードを解析するのが最善の考えではありませんが、とにかく...次を使用してくださいawk
。
awk -F'[=.]' '/nano/{$2++; print $1"="$2"."$3; next}1'
これは変数が常にドットとして与えられると仮定する。ただその整数部分(=
と間.
)を取って1ずつ増やし、すべてを再印刷します。
答え2
所定の位置で編集するには、Perlを使用します。
perl -i.bak -pe 's/(?<=mu_nano=)([\d.]+)/ sprintf "%.1f", $1+1 /e' variables.f90