[请益] 请问 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