看板 Perl 關於我們 聯絡資訊
大家好,小弟有個檔案想處理行列的移動 以下左邊是檔案內容,右邊是想變成的樣子,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
scwg: "@array" 會把內容用 $" 接起來, 預設是 " ". 03/11 01:04
scwg: 在 while 外面加上 $" = "\n"; 03/11 01:04
flu:'..'的用法要弄懂還滿不容易的 03/11 16:43