[問題] 文檔複數行取代

作者: 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