Как удалить комментарии из необработанного файла sql

У меня проблема с очисткой комментариев и пустых строк из уже существующего файла sql. В файле более 10 тыс. Строк, поэтому ручная очистка - не вариант.

У меня есть небольшой скрипт на Python, но я понятия не имею, как обрабатывать комментарии внутри многострочных вставок.

Код:

f = file( 'file.sql', 'r' )
t = filter( lambda x: not x.startswith('--') \
            and not x.isspace() 
  , f.readlines() )
f.close()
t #<- here the cleaned data should be

Как следует работа:

Это должно быть очищено:

-- normal sql comment

Это должно остаться как есть:

CREATE FUNCTION func1(a integer) RETURNS void
    LANGUAGE plpgsql
    AS $$
BEGIN
        -- comment
       [...]
END;
$$;

INSERT INTO public.texts (multilinetext) VALUES ('
and more lines here \'
-- part of text 
\'
[...]

');
10
задан Szymon Lukaszczyk 3 May 2011 в 15:22
поделиться