Использование Perl для перемещения запятых от конца строки к началу строки - PullRequest
0 голосов
/ 16 августа 2010

Я унаследовал несколько десятков SQL-скриптов, которые выглядят так:

select
    column_a,
    column_b,
    column_c
from
    my_table

Чтобы отформатировать их так, чтобы они соответствовали остальной части нашей библиотеки sql, я бы хотел изменить их так:

select
    column_a
    ,column_b
    ,column_c
from
    my_table

где запятые начинаются с начала строки, а не с конца. Я сделал несколько проходов в Perl, но не смог заставить его работать правильно.

Может ли кто-нибудь из вас, богов Perl, дать здесь некоторое просветление?

1 Ответ

5 голосов
/ 16 августа 2010
perl -pi.bak -0777 -wle's/,[^\n\S]*\n([^\n\S]*)/\n$1,/g' file1.sql file2.sql ...

Класс символа - это любой пробел без перевода строки. -0777 заставляет его работать с целыми файлами, а не со строками.

...