簡體   English   中英

如何忽略Windows版本gnu grep中的換行符?

[英]How to ignore line breaks in windows version gnu grep?

Windows XP,gnu grep, 網址http://gnuwin32.sourceforge.net/packages/grep.htm

我有帶換行符的文件:

test 
  123

我嘗試使用gnu grep通過正則表達式"test.*\\n*.*12"查找此文件

grep -G "test.*\n*\.*12" C:\myfile_with_linebreaks.txt

但沒有成功。

我需要使用哪些參數或regexp模式來查找帶換行符的字符串?

我經常使用[^\\0] (每個字符,但NUL除外),因為大多數字符串都不包含NUL字符。 否則,我將組裝一個包含的字符組. \\n

grep -G "test[.\n]*12" C:\

相反,如果您想要在test和123之間恰好一個換行符,我將使用非貪婪*運算符:

grep -G "test.*?\n.*?12" C:\

? *運算符后的問號將限制該運算符。 沒有? ,它將一直持續到找到最后的下一個匹配項為止; ? 它將在接下來的第一場比賽中停止。

同樣,可能是您明確需要使用-E開關啟用POSIX擴展正則表達式:

grep -E "test.*?\n.*?12" C:\

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM