[請益] 請問 perl 處理行的移動

作者: heyk1 (大熱天)   2013-02-22 17:06:47
請問各位高手, perl 能否把本行(特定某一行) 移動加到上一行的最後面?
例如:
this is
a book
that is a chair
用 perl 改成 ==>
this is a book
that is a chair
作者: iFEELing (ing)   2013-02-23 09:55:00
你要移的是換行符號 不是行
作者: heyk1 (大熱天)   2013-02-23 16:40:00
能請您只點一下如何修改? thanks.
作者: gugod (å•Š)   2013-02-23 17:48:00
把 \n 換成空白即可。 s/(this is)\n/$1 /;
作者: heyk1 (大熱天)   2013-02-24 11:27:00
請問我目前只能尋找到關鍵字that, 然後再對那行處理打錯..應是尋找關鍵字 book, 然後把有 book 那行往上一行移把 a book 附加在 this is 這上一行的最後面最後兩行合併成同一行
作者: dryman (dryman)   2013-02-24 16:01:00
s/\n(a book)/ \1/m; 這樣就行了
作者: heyk1 (大熱天)   2013-02-24 18:39:00
不好意思~小弟是菜鳥,能否解釋一下 \1/m 的意思? thanks!今天試了還是沒法.因為要讀一個檔案, 然後跨行搜尋.但是用 while 處理, 一次只能處裡一行, 無法跨行.請問有沒有高手可以幫忙解答一下 Orz... thanks.
作者: gugod (å•Š)   2013-02-27 06:18:00
如果是用 <> 讀檔的話,可以先做 local $/ = undef;這樣就會把整個檔案讀進一個字串

Links booklink

Contact Us: admin [ a t ] ucptt.com