Re: [請益] 合併line的問題

看板Perl作者 (會走路的冰塊)時間18年前 (2007/06/07 15:04), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《tear2001 ( Play ball !!)》之銘言: : 目前我有一串數列 : 367 0.619 0.610 0.646 0.593 0.513 0.509 0.488 0.567 : 0.600 0.600 0.598 0.579 0.584 0.577 0.541 0.570 0.554 : 364 0.619 0.610 0.646 0.593 0.513 0.510 0.489 0.567 : 0.600 0.600 0.598 0.579 0.584 0.575 0.542 0.570 0.554 : 365 0.619 0.610 0.646 0.593 0.513 0.510 0.489 0.567 : 0.600 0.600 0.598 0.579 0.584 0.577 0.542 0.570 0.554 : 361 0.619 0.610 0.646 0.593 0.513 0.510 0.489 0.567 : 0.600 0.600 0.598 0.579 0.584 0.577 0.542 0.570 0.554 : 362 0.619 0.610 0.646 0.593 0.513 0.510 0.489 0.567 : 0.600 0.600 0.598 0.579 0.584 0.577 0.542 0.570 0.554 : 363 0.619 0.610 0.646 0.593 0.513 0.510 0.489 0.567 : 0.600 0.600 0.598 0.579 0.584 0.577 0.542 0.570 0.554 : 359 0.625 0.620 0.641 0.606 0.522 0.520 0.501 0.579 : 0.589 0.590 0.588 0.595 0.589 0.579 0.540 0.562 0.545 : 我想把第一行跟第二行合併 : 第三跟第四 第五跟第六.............. : foreach $line (<FID>) { : if( $line =~ /^0/ ){ #line開頭為0的就跟上一行合併 : $line =~ s/\n//, $line ; : } else { : print $line; : } : print $line; : } : 但是檔案紋風不動....orz : 能請板上高手幫忙檢查一下哪裡出了問題ㄇ? 比對的部份我覺得很奇怪,你這個方法的邏輯是 「如果開頭為 0 ,我就把這一行的換行給去掉」 可是第一行跟地二行之所以會分開來,是因為第一行最後面的 newline 而非第二行 (開頭為0) 的 newline 因此我改成「只要開頭不是 0,就把 newline 去掉」 foreach $line (<FID>) { chomp($line) if ($line !~ /^\s0/); print $line; } ^\s0 <--開頭有隔一個空格才出現 0 如果只是要單純地把第一行跟第二行合併 $i = 0; foreach $line (<FID>) { chomp($line) if (++$i%2 == 1); // $i 遞增,mod 2 如果是 1 代表奇數行 print $line; } -- 我想你會衰成這樣都是我害的 ---- Tizzy Mac 緊張的麥金塔?這是誰(._.?) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.128.98.6 ※ 編輯: WalkingIce 來自: 140.128.98.6 (06/07 15:08)
文章代碼(AID): #16Pwtdl1 (Perl)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #16Pwtdl1 (Perl)