[问题] 文档复数行取代

楼主: klorc (月饼)   2017-01-23 20:25:27
请问各位先进, 我有一堆文档大概长这样
Xxxx
Xxxx
begin
ABC=123;
end
其中
begin
ABC=123;
end
是固定每个档案都有,
xxx内容则不固定, 会出现begin和end 但是中间不会刚好只有一行ABC=123;
小弟想将每个文档固定的三行删除
"perl -pi -e 's/begin\nABC=123;\nend\n//g' $IFilename
这样没办法, 想请问问题在那边, 感谢
作者: Neisseria (Neisseria)   2017-01-23 20:47:00
因为 Perl one-liner 默认一次只读一行试试看 -0777 将整个档案读入看看
作者: iFEELing (ing)   2017-01-23 20:56:00
所以你是想把 begin 到 end 中间的东西都删掉?
楼主: klorc (月饼)   2017-01-23 21:29:00
是的 照Neisseria大大的作法顺利完成, 非常感谢
作者: CindyLinz (Cindy Wang)   2017-01-23 22:39:00
也可以用..perl -pe '$_ = "" if /^begin$/../^end$/' $IFilename里面用到的 .. 运算子可以参考 #1IRX5P3B 这篇~https://www.ptt.cc/bbs/Perl/M.1382945113.A.0CB.html囧, 发现我上次在板上发言也是在讲 .. 运算子
作者: Neisseria (Neisseria)   2017-01-23 22:58:00
那个 .. 运算子我也没看过,每次看到都觉得像新的一样
作者: AntaresStar   2017-01-24 00:39:00
但点点没办法解决中间必须出现唯一一次ABC=123的需求
作者: CindyLinz (Cindy Wang)   2017-01-25 23:17:00
他不是说中间不一定是一行吗?

Links booklink

Contact Us: admin [ a t ] ucptt.com