作者klorc (月饼)
看板Perl
标题[问题] 文档复数行取代
时间Mon Jan 23 20:25:27 2017
请问各位先进, 我有一堆文档大概长这样
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
这样没办法, 想请问问题在那边, 感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.228.26.10
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Perl/M.1485174330.A.A4E.html
1F:推 Neisseria: 因为 Perl one-liner 预设一次只读一行 01/23 20:47
2F:→ Neisseria: 试试看 -0777 将整个档案读入看看 01/23 20:48
3F:→ iFEELing: 所以你是想把 begin 到 end 中间的东西都删掉? 01/23 20:56
4F:→ klorc: 是的 照Neisseria大大的作法顺利完成, 非常感谢 01/23 21:29
5F:推 CindyLinz: 也可以用.. 01/23 22:39
6F:→ CindyLinz: perl -pe '$_ = "" if /^begin$/../^end$/' $IFilename 01/23 22:40
7F:→ CindyLinz: 里面用到的 .. 运算子可以参考 #1IRX5P3B 这篇~ 01/23 22:41
9F:→ CindyLinz: 囧, 发现我上次在板上发言也是在讲 .. 运算子 01/23 22:47
10F:→ Neisseria: 那个 .. 运算子我也没看过,每次看到都觉得像新的一样 01/23 22:58
11F:→ AntaresStar: 但点点没办法解决中间必须出现唯一一次ABC=123的需求 01/24 00:39
12F:→ CindyLinz: 他不是说中间不一定是一行吗? 01/25 23:17