作者hws110 ( only you )
看板Perl
标题[问题] 行列的处理
时间Mon Mar 11 00:16:17 2013
大家好,小弟有个档案想处理行列的移动
以下左边是档案内容,右边是想变成的样子,XXX是其他不会动到的内容
SPEC a1 |
1_1_For_SPEC_a
value | SPEC a1
500 | value
SPEC a2 | 500
value | SPEC a2
350 | value
1_1_For_SPEC_a | 350
XXX | XXX
SPEC c1 |
3_1_For_SPEC_c
value |
SPEC c1
170 |
value
SPEC c2 |
170
value |
SPEC c2
810 |
value
3_1_For_SPEC_c |
810
XXX | XXX
3_2_For_SPEC_c |
3_2_For_SPEC_c
|
SPEC c1
XXX |
value
|
170
|
SPEC c2
|
value
|
810
| XXX
-----
我的做法,先开档读档
while(<file>){
chomp;
if ($_ =~ /SPEC.*/ .. /\d+_\d+_\S+/){
push @array1, $_;
}
if (/(\d+_\d+_\S+)/){
print "@array1\n";
}
print "$_\n";
}
-----
但是结果会变成这样
SPEC a1
value
500
SPEC a2
value
350
SPEC a1 value 500 SPEC a2 value 350
1_1_For_SPEC_a
XXX
SPEC c1
value
170
SPEC c2
value
810
SPEC a1 value 500 SPEC a2 value 350 SPEC c1 value 170 SPEC c2 value 810
3_1_For_SPEC_c
XXX
SPEC a1 value 500 SPEC a2 value 350 SPEC c1 value 170 SPEC c2 value 810
3_2_For_SPEC_c
请问这个状况要怎麽修改比较好呢?
感谢大家~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.253.109.130
1F:推 scwg: "@array" 会把内容用 $" 接起来, 预设是 " ". 03/11 01:04
2F:→ scwg: 在 while 外面加上 $" = "\n"; 03/11 01:04
3F:→ flu:'..'的用法要弄懂还满不容易的 03/11 16:43