データの依存関係を見つけるために複数のSQLスクリプトを検索していますが、スクリプトの変更により興味深い問題に直面しました。
単語を検索すると、FROM
その単語のある行のみが返されます。したがって、次は1行目と3行目のみを印刷しますが、3行目と4行目で最初の行を印刷する必要があります。どんな助けでも大変感謝します!
SELECT * FROM TABLE1
SELECT *
FROM
TABLE 2
ベストアンサー1
SQL文は通常;
。
この事実を利用して、区切られたレコードをawk
読み取り、;
各レコードにスティングがあるかどうかをテストできますFROM
。そのようなレコードが見つかったら、すべての連続スペースを単一のスペースに圧縮し、すべての改行を単一のスペースに変更してから、次のように出力できます。
$ awk 'BEGIN { RS = ";" } /FROM/ { gsub("\n+| +", " "); print }' statements.sql
次のファイルを使用してこれをテストします。
SELECT * FROM TABLE1;
SELECT *
FROM
TABLE2;
明らかにする
SELECT * FROM TABLE1
SELECT * FROM TABLE2