作者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/m.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