
我有一個名為 的文件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