這頁面說正規表示式中的任何乘數都可以帶有“?”後綴進行非貪婪搜索。但是,我不知道如何讓它在 grep 中工作。
grep -E '^.*?$' file
列印全文。
如何使用 grep 進行非貪婪的正規表示式搜尋?
答案1
您需要grep
PCRE(Perl 相容正規表示式)支援。例如,GNUgrep
有這個——可以透過該-P
選項來利用。還有一個名為 的獨立程序pcregrep
,可以透過常規打包安裝在許多系統上。
請注意,-E
啟用不支援令牌非貪婪匹配的 ERE(擴展正規表示式)?
。
因此,使用 GNUgrep
你可以這樣做:
grep -Po '^.*?foo' file
從一開始就匹配(並提取)到第一個foo
。