[英]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.