С awk
:
awk '/^CREATE TABLE/{
inside = 1
sep = ""
printf "%s", $0
next
}
inside {
printf "%s", sep $1
sep = ","
if (/\);$/) {
print ");"
inside = 0
}
}'
Этот оператор полагается на те операторы, которые начинаются с CREATE TABLE
в начале строки и заканчиваются );
в конец строки (хотя и не той же строки), и каждое имя столбца является первым полем последующих строк (это означает, что имена столбцов не могут содержать пробелы).