作者tear2001 ( Play ball !!)
看板perl
标题Re: [请益] 合并line的问题
时间Thu Jun 7 15:52:38 2007
: : foreach $line (<FID>) {
: : if( $line =~ /^0/ ){ #line开头为0的就跟上一行合并
: : $line =~ s/\n//, $line ;
: : } else {
: : print $line;
: : }
: : print $line;
: : }
: : 但是档案纹风不动....orz
: : 能请板上高手帮忙检查一下哪里出了问题ㄇ?
: 比对的部份我觉得很奇怪,你这个方法的逻辑是
: 「如果开头为 0 ,我就把这一行的换行给去掉」
: 可是第一行跟地二行之所以会分开来,是因为第一行最後面的 newline
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
哎呀 我真是脑残 orz......
: 而非第二行 (开头为0) 的 newline
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
你说的对 我focus错地方了 /n 是在上一行结束时出现而不是第二行的头
: 因此我改成「只要开头不是 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;
: }
感谢您的协助 让我看清这盲点
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.96.144
1F:推 WalkingIce:你是威而康 06/07 15:56
2F:→ stevennick:似乎 可以只使用 chomp 去掉换行符号 06/11 23:57
3F:→ stevennick:还有。。。印象中foreach是一次抓一行来做 06/11 23:58
4F:→ stevennick:你的问题可能要另外想个方法解决~ 06/11 23:58