[求助]将文件中的前后两行或者前后三行合为一行

[求助]将文件中的前后两行或者前后三行合为一行

文件部分内容如下:

[Copy to clipboard] [ - ]
CODE:
.......
.......
<!--mappings -->
<!--<mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfStopErrorMail.hbm.xml" />-->
<mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfDailyStatAll.hbm.xml" />
<mapping
                        resource="cn/bestwiz/jhf/core/dao/bean/main/JhfLeverageGroup.hbm.xml" />
                <mapping
                        resource="cn/bestwiz/jhf/core/dao/bean/main/JhfSwapPoint.hbm.xml" />
<!--
                <mapping
                        resource="cn/bestwiz/jhf/core/dao/bean/main/JhfDepositStatusHistory.hbm.xml" />
-->
.......
.......
<class-cache
                        class="cn.bestwiz.jhf.core.dao.bean.main.JhfCurrencyHolidayMaster"
                        usage="read-write" />
                <class-cache class="cn.bestwiz.jhf.core.dao.bean.main.JhfSwapPoint" usage="read-write" />
<!--
                <class-cache
                        class="cn.bestwiz.jhf.core.dao.bean.main.JhfLeverageGroup"
                        usage="read-write" />
-->

想要得到的结果:

[Copy to clipboard] [ - ]
CODE:
.......
.......
<!--mappings -->
<!--<mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfStopErrorMail.hbm.xml" />-->
<mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfDailyStatAll.hbm.xml" />
<mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfLeverageGroup.hbm.xml" />
<mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfSwapPoint.hbm.xml" />
<!--<mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfDepositStatusHistory.hbm.xml" />-->
.......
.......
<class-cache class="cn.bestwiz.jhf.core.dao.bean.main.JhfCurrencyHolidayMaster" usage="read-write" />
<class-cache class="cn.bestwiz.jhf.core.dao.bean.main.JhfSwapPoint" usage="read-write" />
<!-- <class-cache class="cn.bestwiz.jhf.core.dao.bean.main.JhfLeverageGroup" usage="read-write" />-->

然后再存回到文件中

我自己试了一下
open (F,"<log") or die ("can't open");
@old=<F>;
close F;
foreach (@old) {
     if ( /^--\>\s+/ ) {s/\s//g; print $_."\n";}
     if ( /^\<!--\s+/ ) {s/\s//g; print ;}

     if ( /^\s+resource=\w*/ )   {s/\s//g;print  $_;}
     if ( /^\s+\<mapping\s+/ )  {s/\s//g;print  $_;}
     if ( /^\s+\<class-cache/ )    {s/\s//g;print  $_;}
     if ( /^\s+class=\w*/ )    {s/\s//g;print  $_;}
     if ( /^\s+usage=\w*/ )    {s/\s//g;print  $_."\n";}
}
open (F,">log") or die ("can't open");
print  F @old;
close F;

}
比较繁琐 而且格式有出入,而且会把原来必要的空格删除了。
各位大大帮帮出出主意

小弟刚学perl不久,请赐教,不慎感激



[Copy to clipboard] [ - ]
CODE:
use strict;
use warnings;
my $data;

while(<DATA>){
        $data .= $_;
}

$data =~ s/\s+/ /g;
$data =~ s/> </>\n</g;

print $data;

__END__
<!--mappings -->
<!--<mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfStopErrorMail.hbm.xml" />-->
<mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfDailyStatAll.hbm.xml" />
<mapping
                        resource="cn/bestwiz/jhf/core/dao/bean/main/JhfLeverageGroup.hbm.xml" />
                <mapping
                        resource="cn/bestwiz/jhf/core/dao/bean/main/JhfSwapPoint.hbm.xml" />
<!--
                <mapping
                        resource="cn/bestwiz/jhf/core/dao/bean/main/JhfDepositStatusHistory.hbm.xml" />
-->
<class-cache
                        class="cn.bestwiz.jhf.core.dao.bean.main.JhfCurrencyHolidayMaster"
                        usage="read-write" />
                <class-cache class="cn.bestwiz.jhf.core.dao.bean.main.JhfSwapPoint" usage="read-write" />
<!--
                <class-cache
                        class="cn.bestwiz.jhf.core.dao.bean.main.JhfLeverageGroup"
                        usage="read-write" />
-->



[Copy to clipboard] [ - ]
CODE:
<!--mappings -->
<!--<mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfStopErrorMail.hbm.xml" />-->
<mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfDailyStatAll.hbm.xml" />
<mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfLeverageGroup.hbm.xml" />
<mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfSwapPoint.hbm.xml" />
<!-- <mapping resource="cn/bestwiz/jhf/core/dao/bean/main/JhfDepositStatusHistory.hbm.xml" /> -->
<class-cache class="cn.bestwiz.jhf.core.dao.bean.main.JhfSwapPoint" usage="read-write" />
<!-- <class-cache class="cn.bestwiz.jhf.core.dao.bean.main.JhfLeverageGroup" usage="read-write" /> -->

谢谢你给了一个思路,

佩服【精灵王】~~