我通过在某些文本输入上使用sed查找和替换来生成简单的SVG图。但是,我需要更复杂的查找和替换操作,包括简单的数学,以改变某些X和Y值。
E.g。我需要将所有Y值乘以系数0.5或0.2或0.
由于我希望如何工作,因此无法通过SVG中的转换操作实现。*
我只需要能够找到([0-9.]*)VERT
的所有实例(以sed发言)并替换为\1
的数学结果乘以我选择的常数。
答案 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
希望这有效+