簡體   English   中英

如何匹配不是以grep開頭的字符串

[英]How can I match a string not starting with a sequence with grep

我正在運行以下命令:

grep -REin "Example::" .

我正在嘗試進一步過濾結果。 我想將任何內容與Example::匹配,除非它以return開頭,例如在return Example::的情況下。

比賽

if (Example::test())

不符合

if (something()) return Example::another()

您可以使用-v (反向匹配)選項執行以下操作。

grep -REin 'Example::' . | grep -vi 'return Example::'

或使用-P選項將模式解釋為Perl正則表達式。

grep -RPin '(?<!return )Example::' .

這將使用負向后方斷言前面的不是單詞return

(?<!         # look behind to see if there is not:
  return     #   'return '
)            # end of look-behind
Example::    # 'Example::'

您可以使用awk解決此問題:

awk '/Example/ && !/return Example/' file
if (Example::test())

暫無
暫無

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

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