修改bash腳本中的部分字串

修改bash腳本中的部分字串

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

相關內容