나는 SQL 로그 파일을 잔뜩 가지고있다. 나는 다음과 같은 패턴의 모든 항목을 추출하기 위해 찾고 있어요문자열 추출 및 dupes 필터링 맥 OS X
SQL 로그 내가 logs_로 시작하는 파일을 검색하고 다음에 고유 한 모든 테이블을 추출 할이
sel *
from DB.T1;
update DB.T1;
delete from DB.T2;
collect stats on
DB.T3 index (a,b,c);
sel count(*) from Db.T1;
sel count(*) from db . T2;
sel count(*) from db.t2;
같이 보입니다 SQL을 가지고 문자열 DB./db./Db./dB. 몇 가지 경우
에서 DB 후 공백이 당신이 볼 수 있듯이내가 기대하고있어 출력은 T3
내가는 Mac OS X에있어deduped 목록 T1, T2입니다
이것이 내가 얻을 수 있었던 것입니다. 나는 이것을 지나갈 수 없었다
grep -o -i 'tb.*\Z' *logs_* | uniq
이것은 공백의 결과를 준다. 나는 문자열의 끝까지 (그리고 줄의 끝까지) 원하는대로 \ Z를 사용했다.
올바른 명령을 작성하는 데 도움이 필요하다. 같은
감사합니다. sth, 명령 작동 방법을 설명해 주시겠습니까? . 이 패턴을 실행하면 패턴과 일치하지 않는 여러 행이 생기고 DBT1의 select *와 같은 완전한 행을 얻게됩니다. – pmv
@pmv'-o'를 생략 했습니까? 여기 정확히 시도한 것을 보여주세요. – ysth
안녕하세요. 감사. -E가하는 것과 DB '부분을 이해하도록 도와 주시겠습니까? ? [A-Z0-9 $ _] + ' – pmv