如何用PERL在文本文件里面指定位置插入一句话,请求帮忙。分全给你啦...只有这么多。谢谢!

要求是:在原文件里面寻找每一行的前5位,如果是"ANL;1"的话,就把该行插到WN_OK.TXT文件中和它前5位相同的行的前面。ANL;2同ANL;1ANL;3同ANL;... 要求是:
在原文件里面寻找每一行的前5位,如果是"ANL;1" 的话,就把该行插到WN_OK.TXT文件中和它前5 位相同的行的前面。
ANL;2 同 ANL;1
ANL;3 同 ANL;1
ANL;4 同 ANL;1

WN.TXT----原文件
ANL;1;WN;52;1;WN;0;FAIL;3;4;6;V;691 1;0
ANL;2;WN;53;1;WN;0;PASS;5;4;6;V;691 1;0
ANL;3;WN;54;1;WN;0;PASS;5;4;6;V;691 1;0
ANL;4;WN;55;1;WN;0;PASS;5;4;6;V;691 1;0

WN_1.TXT-----被插入文件
FORMAT;mmdd
START;D2UB;D2UB;ICT_02;D2UB;WET_001;07/29/2015;17:23:50;
LOT;
ANL;1;R1;1;1;P/N=R 10K TOP X:5.219 Y:-0.518;0;PASS;9864.02;9500;10500;ohm;20 65;0
ANL;1;R2;2;1;P/N=R 10K TOP X:5.061 Y:-0.523;0;PASS;10104.4;9500;10500;ohm;1 7;0
FORMAT;mmdd
START;D2UB;D2UB;ICT_02;D2UB;WET_001;07/29/2015;17:23:50;
LOT;
ANL;2;R1;1;1;P/N=R 10K TOP X:5.219 Y:-0.518;0;PASS;9864.02;9500;10500;ohm;20 65;0
ANL;2;R2;2;1;P/N=R 10K TOP X:5.061 Y:-0.523;0;PASS;10104.4;9500;10500;ohm;1 7;0
FORMAT;mmdd
START;D2UB;D2UB;ICT_02;D2UB;WET_001;07/29/2015;17:23:50;
LOT;
ANL;3;R1;1;1;P/N=R 10K TOP X:5.219 Y:-0.518;0;PASS;9864.02;9500;10500;ohm;20 65;0
ANL;3;R2;2;1;P/N=R 10K TOP X:5.061 Y:-0.523;0;PASS;10104.4;9500;10500;ohm;1 7;0
FORMAT;mmdd
START;D2UB;D2UB;ICT_02;D2UB;WET_001;07/29/2015;17:23:50;
LOT;
ANL;4;R1;1;1;P/N=R 10K TOP X:5.219 Y:-0.518;0;PASS;9864.02;9500;10500;ohm;20 65;0
ANL;4;R2;2;1;P/N=R 10K TOP X:5.061 Y:-0.523;0;PASS;10104.4;9500;10500;ohm;1 7;0

WN_OK.TXT-----插入后得到最终的文件
FORMAT;mmdd
START;D2UB;D2UB;ICT_02;D2UB;WET_001;07/29/2015;17:23:50;
LOT;
ANL;1;WN;52;1;WN;0;FAIL;3;4;6;V;691 1;0
ANL;1;R1;1;1;P/N=R 10K TOP X:5.219 Y:-0.518;0;PASS;9864.02;9500;10500;ohm;20 65;0
ANL;1;R2;2;1;P/N=R 10K TOP X:5.061 Y:-0.523;0;PASS;10104.4;9500;10500;ohm;1 7;0
FORMAT;mmdd
START;D2UB;D2UB;ICT_02;D2UB;WET_001;07/29/2015;17:23:50;
LOT;
ANL;2;WN;53;1;WN;0;PASS;5;4;6;V;691 1;0
ANL;2;R1;1;1;P/N=R 10K TOP X:5.219 Y:-0.518;0;PASS;9864.02;9500;10500;ohm;20 65;0
ANL;2;R2;2;1;P/N=R 10K TOP X:5.061 Y:-0.523;0;PASS;10104.4;9500;10500;ohm;1 7;0
FORMAT;mmdd
START;D2UB;D2UB;ICT_02;D2UB;WET_001;07/29/2015;17:23:50;
LOT;
ANL;3;WN;54;1;WN;0;PASS;5;4;6;V;691 1;0
ANL;3;R1;1;1;P/N=R 10K TOP X:5.219 Y:-0.518;0;PASS;9864.02;9500;10500;ohm;20 65;0
ANL;3;R2;2;1;P/N=R 10K TOP X:5.061 Y:-0.523;0;PASS;10104.4;9500;10500;ohm;1 7;0
FORMAT;mmdd
START;D2UB;D2UB;ICT_02;D2UB;WET_001;07/29/2015;17:23:50;
LOT;
ANL;4;WN;55;1;WN;0;PASS;5;4;6;V;691 1;0
ANL;4;R1;1;1;P/N=R 10K TOP X:5.219 Y:-0.518;0;PASS;9864.02;9500;10500;ohm;20 65;0
ANL;4;R2;2;1;P/N=R 10K TOP X:5.061 Y:-0.523;0;PASS;10104.4;9500;10500;ohm;1 7;0
展开
 我来答
匿名用户
2015-07-31
展开全部
open F1,"WN.txt" or die $!;
@array1=<F1>;
open F2,"WN_1.txt" or die $!;
@array2=<F2>;
open o,">WN_OK.txt" or die $!;
$k=-2;$count=-1;     
foreach(@array2){
        $count++; $k+=4;
if(/LOT/){print o "$_"; $i=$count-($k/5); print o "$array1[$i]";}
else {print o $_;}
         }#还有很多其他方法的,可以多尝试。
追问
大仙,我有试你的程序,但是没有跑出来。WN.TXT的文件,没有被加入WN_1.TXT文件中,请帮忙再看看,谢咧...
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式