envsubst с файлом ogr2ogr external. sql - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь объединить команду envsubst с внешним файлом sql, переданным в качестве опции ogr2ogr, но не могу заставить его работать.

export STOP_NAME=Park;

ogr2ogr \
-f geojson \
/vsistdout/ \
stops.csv \
-dialect sqlite \
-sql envsubst < @stop_geo.sql

Где stop_geo. sql - это:

SELECT *
FROM stops
WHERE stop_name = '$STOP_NAME'

Это ошибка с:

Warning 1: layer names ignored in combination with -sql.
ERROR 1: In ExecuteSQL(): sqlite3_prepare_v2(envsubst):
  near "envsubst": syntax error

Есть ли способ заменить переменную среды в внешний файл sql в параметре команды ogr2ogr - sql?

1 Ответ

0 голосов
/ 21 июня 2020

Команда envsubst должна быть заключена в подстановку команд в кавычках (например, «$ ()»). Вместо использования синтаксиса @, как указано в документации ogr2ogr sql , его просто нужно прочитать с помощью обычного оператора <. </p>

export STOP_NAME=Park;

ogr2ogr \
-f geojson \
/vsistdout/ \
stops.csv \
-dialect sqlite \
-sql "$(envsubst < stop_geo.sql)"
...