看板 Perl 關於我們 聯絡資訊
請問各位先進, 我有一堆文檔大概長這樣 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://www.ptt.cc/bbs/Perl/M.1485174330.A.A4E.html
Neisseria: 因為 Perl one-liner 預設一次只讀一行 01/23 20:47
Neisseria: 試試看 -0777 將整個檔案讀入看看 01/23 20:48
iFEELing: 所以你是想把 begin 到 end 中間的東西都刪掉? 01/23 20:56
klorc: 是的 照Neisseria大大的作法順利完成, 非常感謝 01/23 21:29
CindyLinz: 也可以用.. 01/23 22:39
CindyLinz: perl -pe '$_ = "" if /^begin$/../^end$/' $IFilename 01/23 22:40
CindyLinz: 裡面用到的 .. 運算子可以參考 #1IRX5P3B 這篇~ 01/23 22:41
CindyLinz: 囧, 發現我上次在板上發言也是在講 .. 運算子 01/23 22:47
Neisseria: 那個 .. 運算子我也沒看過,每次看到都覺得像新的一樣 01/23 22:58
AntaresStar: 但點點沒辦法解決中間必須出現唯一一次ABC=123的需求 01/24 00:39
CindyLinz: 他不是說中間不一定是一行嗎? 01/25 23:17