sample_file:搜索和替換一個班輪保留換行符
this is a test line!
this is a test line!
this is a test line!
this is a test line!
我使用一個Perl的一行來代替文字是這樣的:
perl -pi -e 's{this(.*)\s}{\n\1\n}i && s{.*\n}{}' sample_file
的this(.*)\s
部分和\1
部分是變量,我不能改變(它來自用戶輸入)。
我的問題是我需要根據第一個正則表達式是否包含換行符來調整{\n\1\n}
部分。
例如,如果第一個正則表達式是{this(.*)\s}
我需要{\n\1\n}
,但如果第一個像{(.*)a test}
我需要{\n\1}
。
如何檢查換行符是否丟失並在必要時放回去?
它不會在第一個地方工作 - ''-pi'會導致你的東西逐行迭代。 – Sobrique
你從錯誤的地方開始,你的問題是誤導。我建議你問另一個問題,顯示你已經嘗試過的內容,並描述你想要應用到你的文件的轉換。 – Borodin
你真的不應該要求你的用戶輸入正則表達式模式! – Borodin