uniq와 agrep의 조합?

uniq와 agrep의 조합?

한 줄에 하나씩 긴 SQL 쿼리로 가득 찬 파일이 있습니다. 고유한 쿼리 목록을 만들어야 하는데 대부분의 쿼리에 매개변수 값이 포함되어 있어 정확한 일치 도구를 사용할 uniq수 없습니다. 예를 들어, 고유한 줄을 "퍼지"하는 방법이 있습니까 agrep?

답변1

쿼리가 충분히 예측 가능한 경우 간단히 sed매개변수 값을 출력할 수도 있습니다. 예를 들어 많은 쿼리에 숫자와의 동일성 비교가 포함된 경우 sed 's/=[[:digit:]]+//g'실제 숫자는 모두 제거되고 열 이름만 남습니다.

그렇지 않으면 제가 생각할 수 있는 유일한 일반적인 솔루션은 패턴 인식 기술입니다.케이- 가장 가까운 이웃, 유사성을 기반으로 모든 문자열 목록을 클러스터로 분류할 수 있습니다.

답변2

EXPLAIN ANALYZE를 통해 각 쿼리를 실행하고 쿼리 계획에서 고유한 결과를 찾을 수도 있습니다.

관련 정보