Удалить нижний колонтитул из скрипта копирования Vertica

У меня есть скрипт копии vertica (A.copy.vsql), который загружает данные в таблицу из файла, который имеет HEADER, TRAILER и DETAIL RECORDS.

Оператор Vertica Copy может пропустить 1 запись, что означает, что я знаю, как удалить заголовок.

Я хочу знать, смогу ли я таким же образом рубить прицеп или нет?

Кроме того, если я не могу нарезать его, как заголовок, могу ли я написать простые команды Linux SED в самом VSQL (A.copy.vsql), чтобы выполнить эту работу?


person Puneet Abichandani    schedule 20.12.2016    source источник
comment
Вы не можете этого сделать с Vertica или vsql. Возможно, вы могли бы сделать COPY FROM STDIN и передать файл с помощью sed.   -  person woot    schedule 21.12.2016


Ответы (1)


Если вы хотите удалить первую и последнюю строку из файла, вы можете использовать:

sed '1d;$d' file

И при использовании в команде с шаблоном command file можно с помощью bash использовать подстановку процесса:

command <(sed '1d;$d' file)

1 и $ - абсолютные адреса, 1 означает первую строку, а $ означает последнюю. d удаляет адресуемую строку.

<(...) - это подмена процесса.

person andlrc    schedule 20.12.2016
comment
Я также хотел использовать команду Bash SED, мой единственный вопрос: могу ли я записать SED в файл VSQL или мне нужно сделать другой скрипт перед вызовом моего VSQL? - person Puneet Abichandani; 21.12.2016