我已經Sample.txt文件。我使用changes.pl和cmd命令應用查找並替換Sample.txt。我正在尋找刪除行1和行2。我試過使用每個perl行 in changes.pl但我得到Result.txt所有。如何通過perl匹配通過正常代碼不匹配的換行符?
Sample.txt的
line 1
line 2
line 3
line 4
line 5
line 6
changes.pl
BEGIN {
@ARGV = map glob("\"$_\""), @ARGV;
}
s/a/b/g;
cmd命令
perl -i.bak -p changes.pl My/Files/Directory/Sample.txt
條perl的線
s/line 1\nline 2//g; #perl line 1
s/line 1\n\rline 2//g; #perl line 2
s/line 1\r?\n?\r?line 2//g; #perl line 3
s/line 1\s*line 2//g; #perl line 4
s/line 1.*line 2//su; #perl line 5
s/line 1[\s\S]line 2//g; #perl line 6
的Result.txt
line 1
line 2
line 3
line 4
line 5
line 6
注意
-
我使用Perl在Windows
- 。
- 當我打開Sample.txt的與記事本,我發現換行符沒有顯示(screenshot),而當我打開的Result.txt我發現他們顯示(screenshot)。當我打開UltraEdit中的任何一個時,我發現換行顯示爲(screenshot)。所以,我認爲這個問題涉及到如何對文本進行編碼。此外,建議下載Sample.txt和Result.txt找出問題所在。
'sample.txt'具有用於換行的'LF'(或'\ n')字符。由於記事本僅將'CRLF'(或'\ r \ n')視爲新行標記,因此不會顯示它們。至於替換模式,使用'ignorecase'修飾符。 – hjpotter92
MS DOS/Windows文本文件通常有\ r \ n(回車+換行)作爲行終止,記事本僅支持以CRLF作爲行終止的文本文件。 UNIX文本文件只有\ n作爲行終止。 \ n \ r對大多數操作系統無效。 UltraEdit檢測線路終端類型並將其顯示在主窗口底部的狀態欄中以顯示活動文件。有關更多詳細信息,請參閱關於[newline]的維基百科文章(https://en.wikipedia.org/wiki/Newline)。 – Mofi