[英]How can I recursively search for multiple patterns on linux?
我正在嘗試查找包含以下兩種模式之一的文件:
select AND into
SELECT AND INTO
select AND INTO
SELECT AND into
用AND表示邏輯和 。 我正在使用以下命令:
grep -r 'INTO\|SELECT' .
檢查文件是否具有INTO 和 SELECT,但是如果其中一個存在,則返回字符串,但是我需要兩者。
如果模式必須在同一行上出現,則可以使用
grep -r '\(INTO.*SELECT\)\|\(SELECT.*INTO\)' .
兩種選擇都可以覆蓋任一順序。 如果兩種模式可以出現在單獨的行中,請嘗試以下操作:
grep -r -Z -l 'INTO' . | xargs -0 grep 'SELECT'
第一個grep將打印具有INTO
的文件的名稱( -l
)。 -Z
和xargs -0
一起將這些名稱傳遞給第二個grep,后者查找SELECT
。
注意 @ghoti:對於GNU以外的grep版本,請嘗試--null
而不是-Z
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.