2011-06-09 23 views
8

我有一個在Windows中創建的.txt文件,現在應該在Linux中進行編輯。我想匹配grep的行尾,假設文件bar中我要找到的行的內容是「foo bar」。然後我發出命令grep 'r$' bar,沒有輸出。如何在Windows中使用正則表達式匹配行結束符?

在Windows中給出一個新行由'\ r \ n'組成,與Linux/Unix不同的是\ n',我認爲必須有一些細微的相關。然後我轉換文件dos2unix和瞧,它的作品。

我的問題是如何在不轉換原始文件的情況下匹配內容?

任何意見將不勝感激。

感謝和最好的問候。

+0

既然你問到這個,GNU的grep似乎已經解決了這個問題,顯然是通過完全剝離回車符。 – 2017-03-22 19:14:15

回答

7

如果你的grep支持-P(Perl的正則表達式),然後匹配CRLF:

grep -P '\r$' file 

或:

grep的Ctrl + VCtrl + M文件

按Ctrl + V按Ctrl + M會產生^M

6

使用帶有相匹配的模式都行結束:r\r?\n

-1

試試看AWK

awk '/r$/' RS='\r\n' bar 

awk '/r\r$/' bar 
相關問題