2013-05-30 2 views
0

나는 리눅스 (레드햇) 파일 시스템에 많은 PHP 파일을 가지고 있는데, 파일의 대다수는 데이터베이스 상호 작용을 추상화하는 기능을 사용하기 때문에 좋아 보인다.여러 파일의 값을 일치시키는 정규식

select name from user where name !='' 

에서 : 인라인 쿼리 대신 추상화 계층 기능

이러한 쿼리는 mysql을 실행하기위한 것으로 보인다

하지만, 예를 들어 빈 값을 검사 할 때 그들은 실패를 만들 수 있도록 우리가 오라클을 실행으로 사용되는 경우 오라클이 쿼리는 결코 어떤 행을 반환하지 않으며 나는 그것을 이렇게 바꿀 필요가있다 :

지금까지 진행 한 파일에서이 문제를 해결할 수 있었지만 다른 파일에서 발생하는 부분을 사전 검색하고 싶습니다. 그러나

이 같은 텍스트의 발생을 특정 디렉토리 아래의 모든 .PHP 파일에서 검색을 실행할 수 있습니다

을 확인할 수 많은 디렉토리에서 .PHP 파일 많이 있습니다 = ''나! = ''

다음

가 포함 된 쿼리

$rs = $DB->get_recordset_sql (
"SELECT * 
    FROM {user} 
     WHERE confirmed = 1 AND lastaccess > 0 
     AND lastaccess < ? AND deleted = 0 
     AND (lastname = '' OR firstname = '' OR email = '')" 

나는이 라인을 따라 큰 따옴표 안에 중첩 된 이중 아포스트로피를 찾고의 라인을 따라 뭔가를 생각하고 있었다 사용/lib 디렉토리 /에있는 파일 중 하나에서 실제 예입니다 \ ". * \". * \ " 검색 작업을 수행하고 여러 번 반복 할 수 있다고 확신하지는 않습니다. 파일!

\$DB->.*".*''.*" 

작품은 한 줄에 있었지만 분명 예에 내가 준하지 않는 경우 : SED는

답변

1
find topdir -type f -name '*.php' -exec grep -l "= *''" {} + 

grep 작동 현재 (N) 라인에 여러 이상이 경기를 할 때 사용보고 한 번에 하나의 줄로 표시되므로 다른 줄에 있기 때문에 큰 따옴표 안에 어포 스트로피를 찾아서 예제와 일치시킬 수 없습니다. 그래서 나는 단지 = ''을 확인하고 있습니다.

-l 옵션은 일치하는 줄을 인쇄하지 않고 일치하는 파일의 이름을 인쇄합니다.

+0

정말 도움이되는 출발점입니다. –

관련 문제