perl 如何编写脚本批量替换文本内的字符串?

M48METRICVER,1FMAT,2T01C.7000T02C.9000T03C.9500T04C1.0000T05C1.5000%T01X028888Y089337... M48
METRIC
VER,1
FMAT,2
T01C.7000
T02C.9000
T03C.9500
T04C1.0000
T05C1.5000
%
T01
X028888Y089337G85X039344Y089337
T02
X031199Y079412G85X038069Y079412
T03
X055875Y092966G85X063818Y092966
T04
X057498Y089387G85X063511Y089387
T05
X056520Y077849G85X065020Y077849
X057149Y062698G85X065924Y062698
X028808Y061277G85X041636Y061277
M30
如上文本内容:当我运行脚本时,运行到某一段程序时,要将文件里面的字符串:T01/T02/T03...等,替换成:T11/T12/T13...等,知道有多少行需要替换,如何写一程序将文本的字符串替换?
如下面提示:$count_slot是要替换的行数;$bb是替换数字的开始

比如说我要替换的字符串:T01/T02/T03,如果$bb是的值是:6,那么替换出来的结果是:
T07/T08/T09
$aa=1;
while ($aa <= $count_slot){
$bb = $act_hole + $aa ;
if ($count_slot < 10) {
$tool1 = T0$aa;
}else{
$tool1 = T$aa;
}
if ($bb < 10) {
$tool2 = T0$bb;
}else{
$tool2 = T$bb;
}
展开
 我来答
匿名用户
2014-11-02
展开全部
open F, "1.txt" or die $!;#把以上内容放到1.txt
@array=<F>;foreach(@array){if(/T(\d)\dC/ or /T(\d)\d+$/){s/$1/1/;} print "$_";}
追问

比如说我要替换的字符串:T01/T02/T03,如果$bb是的值是:6,那么替换出来的结果是:T07/T08/T09这个问题怎么样解决啊?

图片程序是CSH写的方式:$count_slot是要替换的行数;$bb是替换数字的开始

代码太长,不能回太多字。

追答
open F, "1.txt" or die $!;#把以上内容放到1.txt
$bb=6;
@array=<F>;foreach(@array){if(/T\d(\d)C/ or /T\d(\d)+$/){$k=$1+$bb; s/$1/$k/;} print "$_";}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式