2016-06-28 6 views
1

私は、次の2つのパターンのいずれかを含むファイルを検索しようとしています:ANDでLinuxで複数のパターンを再帰的に検索するにはどうすればよいですか?

select AND into 
SELECT AND INTO 
select AND INTO 
SELECT AND into 

、私は論理的な終わりを意味します。ファイルがINTOとSELECTを持っているかどうかを確認するために

grep -r 'INTO\|SELECT' . 

が、どちらか一方が存在する場合、これは文字列を返しますが、私は両方を必要とする:私は、次のコマンドを使用しています。

答えて

2

パターンが同じ行で発生している場合は、次の2つの選択肢が順序のいずれかをカバーするためにある

grep -r '\(INTO.*SELECT\)\|\(SELECT.*INTO\)' . 

を使用することができます。二つのパターンが別々の行に発生する可能性があります場合は、これを試してみてください。

grep -r -Z -l 'INTO' . | xargs -0 grep 'SELECT' 

最初のgrepはINTOを持っているファイルの名前(-l)を印刷します。 -Zxargs -0は、これらの名前を2番目のgrepに渡して、SELECTを探します。

@ghotiのおかげで、GNU以外のgrepバージョンでは-Zの代わりに--nullを試してください。

+0

ケースを無視するかどうか(SelectまたはsElEctを検索する場合) – hadis

+1

@hadis '-i'オプションは大文字小文字を区別しません。 – Barmar

+0

@hadis - あなたのシェルの 'man grep'は、たくさんのクールなヒントを与えます。 – ghoti

関連する問題