데이터 종속성을 찾기 위해 여러 SQL 스크립트를 검색하고 있는데 스크립트 변경으로 인해 흥미로운 문제에 직면했습니다.
단어를 검색하면 FROM
해당 단어가 있는 줄만 반환됩니다. 따라서 다음은 첫 번째와 세 번째 줄만 인쇄하는 반면, 세 번째와 네 번째 줄과 함께 첫 번째 줄을 인쇄해야 합니다. 어떤 도움이라도 대단히 감사하겠습니다!
SELECT * FROM TABLE1
SELECT *
FROM
TABLE 2
답변1
SQL 문은 일반적으로 ;
.
이 사실을 활용하여 구분된 레코드를 awk
읽고 ;
각 레코드에 sting이 있는지 테스트할 수 있습니다 FROM
. 그러한 레코드가 발견되면 모든 연속 공백을 단일 공백으로 압축하고 모든 줄 바꿈을 단일 공백으로 변경한 후 다음을 출력할 수 있습니다.
$ awk 'BEGIN { RS = ";" } /FROM/ { gsub("\n+| +", " "); print }' statements.sql
다음 파일을 사용하여 이것을 테스트하십시오.
SELECT * FROM TABLE1;
SELECT *
FROM
TABLE2;
밝혀지다
SELECT * FROM TABLE1
SELECT * FROM TABLE2