Используйте метод split
. Пример:
>>> "0,1,2".split(",")
['0', '1', '2']
Или даже,
>>> [int(x) for x in "0,1,2".split(",")]
[0, 1, 2]
-121--3433067- Ну, переключатель A
по умолчанию добавит эти символы, так что это не загадка.
man grep
утверждает:
-A NUM
Places a line containing a group separator (--) between
contiguous groups of matches. With the -o or --only-matching
option, this has no effect and a warning is given.
Но вы можете использовать простой sed для очистки результата:
yourgrep | sed '/^--$/d'
-121--1026167- Поскольку вы говорите о скриптах, которые явно просто манипулируют базой данных, я бы начал с самых собственных инструментов.
COPY FROM
и COPY TO
для импорта из и экспорта в плоские файлы Теперь вы хотите предоставить Здесь лучший язык, вероятно, тот, который вы или ваша команда уже знают. Все основные языки имеют драйверы Postgres. Выбранный язык будет иметь очень незначительное влияние, если сохранить задачи по обработке данных на уровне базы данных.
Следует учитывать, как долго будет выполняться типичный сценарий. Если это более нескольких минут, то я предлагаю отделить его от веб-интерфейса. В этом случае веб-интерфейс должен позволять пользователю ставить сценарий в очередь для запуска, чтобы сервер мог запускать его независимо от цикла веб- просить.
Я использую Python / Jython для подключения к PostgreSQL и делать разные вещи.
Плюсы:
Примеры использования:
на моих других сообщениях Таким образом, вы можете видеть, что я использую Python / Jython с другими базами данных как Oracle и Informix. Например, я создал инструменты, которые сбрасывают некоторую информацию из схемы базы данных, чтобы я мог легко сравнить базы данных в тестовой и производственной среде.
SchemaCrawler для PostgreSQL позволяет создавать сценарии для базы данных с помощью JavaScript.
Я использую Perl. Я бы тоже это предложил. Что касается языков сценариев баз данных, которые предлагает postgres: pl / perl
намного более развит, чем pl / php
, а pl / perlu
привносит CPAN в Postgres.
У вас все еще есть pl / sql
(отлично подходит для мелочей) и pl / pgsql
(тоже имеет свои приложения).
К сожалению, поддержка CSV в Postgres не совсем удобна, я собираюсь очень скоро начать проект Perl, чтобы исправить это (вероятно, в течение следующего месяца). В настоящее время вам почти нужно использовать pgloader, который (imho) имеет беспорядочный синтаксис. Perl имеет Text :: CSV_XS
, который является находкой для обработки CSV.
Perl исторически имел доступ к базе данных и использовал ее намного лучше, чем PHP. Я по-прежнему считаю, что это хороший способ опередить PHP. В PHP по-прежнему отсутствует асинхронная структура, и он скорее ограничен сетью. Сильные стороны PHP, как правило, в большей степени связаны с нетехническими особенностями языка, а именно с кривой обучения и переносимостью общего хоста.