Я пытаюсь разбить файл, созданный mydumper, на один для каждого оператора SQL. Конечный разделитель; но он многострочный.Разделить файл mydumper sql на отдельные файлы sql
Я думал, что это с этой командной строки:
/bin/awk 'BEGIN{RS=";"}{x="export."++i;}{print $0";"> x".sql";}'
но полученные файлы должным образом не прекращается. Мои образцы, которые были намного меньше линий, работали нормально. Поэтому мой вопрос заключается в том, как разбить файл SQL на полные строки?
В моих образцовых файлах я повторил этот sql, и все сработало нормально.
insert into table (field) values
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('asdf'),
('end');
Есть ли у awk какой-то рекорд длины?
[[email protected] TEST]# wc -l *.sql
10364 export.66.sql
10304 export.67.sql
10209 export.68.sql
10208 export.69.sql
10582 export.6.sql
10207 export.70.sql
10207 export.71.sql
9979 export.72.sql
9918 export.73.sql
9918 export.74.sql
9926 export.75.sql
9931 export.76.sql
10061 export.77.sql
10225 export.78.sql
10209 export.79.sql
10585 export.7.sql
Может быть, пришло время, чтобы возобновить свою Camel книгу и попробовать Perl против Awk
Кто-то, пожалуйста, создайте тег для mydumper, как у меня нет 1500 точек для создания тега.
Я не могу проверить это, поэтому я не буду рассматривать его как ответ, но я бы попытался закрыть предыдущий файл перед записью на новый. Возможно, это проблема с открытием слишком большого количества файлов. 'awk 'BEGIN {RS ="; "} {закрыть (" export "i" .sql "); ... ' – jas
Положите его в ответ, и я приму его. Это было решением. Благодаря! – jbrahy
Awesome. На данный момент книга на верблюдах может остаться на полке. – jas