2013-04-17 58 views
0

我通過使用sed查找和替換某些文本輸入來生成簡單的SVG圖。但是,我需要更復雜的查找和替換操作,涉及簡單的數學運算,以更改某些X和Y值。查找並替換將執行簡單算術的函數?

E.g.我需要用的0.5或0.2或0.1

因爲我多麼希望這個工作,它不能與SVG內的變換操作來實現的因素乘以所有Y值。*

我只需要能夠找到所有([0-9.]*)VERT(在sed中)並且用\1乘以我選擇的常數的數學結果來代替。

回答

0

你可以寫一個簡單的perl腳本。不知道什麼決定了$因素,但這至少應該給你一個開始。

#! /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;

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

希望這個作品+