我通过在某些文本输入上使用 sed 查找和替换来生成简单的 SVG 图。但是,我需要一个涉及简单数学的更复杂的查找和替换操作,以更改某些 X 和 Y 值。
例如,我需要将所有 Y 值乘以 0.5 或 0.2 或 0 的系数。
由于我希望它工作的方式,它无法通过 SVG 中的转换操作来实现。*
我只需要能够找到([0-9.]*)VERT
(在 sed 中)的所有实例并替换为\1
乘以我选择的常数的数学结果。
我通过在某些文本输入上使用 sed 查找和替换来生成简单的 SVG 图。但是,我需要一个涉及简单数学的更复杂的查找和替换操作,以更改某些 X 和 Y 值。
例如,我需要将所有 Y 值乘以 0.5 或 0.2 或 0 的系数。
由于我希望它工作的方式,它无法通过 SVG 中的转换操作来实现。*
我只需要能够找到([0-9.]*)VERT
(在 sed 中)的所有实例并替换为\1
乘以我选择的常数的数学结果。
perl -ape 's/[0-9.]*(?=VERT)/$& * .5/e' file
希望这有效 +
您可以编写一个简单的 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
;