如何找到一个小数,并增加它与perl



我有一个文本文件,包含以下行:

B        0.00000        0.00000       -2.71570
H        0.00000        1.18000       -2.71570
H       -1.02190       -0.59000       -2.71570
H        1.02190       -0.59000       -2.71570

使用Perl如何找到"-2.71570"并在重复的文件中增加-0.1

像这样如何(假设您使用bash):

dec=0.1; for i in {1..15}; do perl -ane 'BEGIN { $dec=shift }; print join( "t", @F[0..2], $F[3]-$dec ), "n"' $dec num_table.txt > file_$i.txt; dec=$(bc <<<$dec+.1); done

将以减量值0.1开始,并使用shell循环创建15个新文件,其中最后一个字段被减量值修改,每次增加0.1。我不完全清楚您想要的格式,但也许这会让您开始。

在perl 1-line中

perl -pe "s/([-d.]+)$/$1 -.1/e" foo.txt > foo.txt.1

现在再重复14次,你就有15个文件了。

或者使用下面的脚本一次创建15个文件。

perl -lne '
    BEGIN {@f=map {open my $fh,q{>},qq{$ARGV[0].$_};$fh} (1..15)}
    for $i (0..$#f) {s/([-d.]+)$/$1-.1/e; print {$f[$i]} $_}
    ' foo.txt

相关内容

  • 没有找到相关文章

最新更新