查找并替换将进行简单算术的函数?

时间:2013-04-17 02:46:06

标签: linux svg sed replace mint

我通过在某些文本输入上使用sed查找和替换来生成简单的SVG图。但是,我需要更复杂的查找和替换操作,包括简单的数学,以改变某些X和Y值。

E.g。我需要将所有Y值乘以系数0.5或0.2或0.

由于我希望如何工作,因此无法通过SVG中的转换操作实现。*

我只需要能够找到([0-9.]*)VERT的所有实例(以sed发言)并替换为\1的数学结果乘以我选择的常数。

2 个答案:

答案 0 :(得分:0)

您可以编写一个简单的perl脚本。不确定是什么决定了$ factor,但这至少应该给你一个运行开始。

#! /usr/bin/perl
my $factor=0.5;
while(my $line=<>) {
    if ($line =~ /([0-9.]*)VERT/) {
        my $num = $factor * $1;
        $line =~ s/([0-9.]*)VERT/${num}VERT/;
    }
    print $line;
}

用法:./scriptname.pl <file_to_process.txt;

答案 1 :(得分:0)

 perl -ape 's/[0-9.]*(?=VERT)/$& * .5/e' file

希望这有效+