#bash #postgresql #ubuntu #shapefile
#bash #postgresql #ubuntu #шейп-файл
Вопрос:
DIRECTORY="/home/charm/Documents/tiger_files/"
cd $DIRECTORY
for f in *.shp;
do
FILENAME="$(basename -s .shp "$f")"
shp2pgsql -I -s 4269 $DIRECTORY $f ${FILENAME} > ${FILENAME}.sql
done
f
захватывает все файлы в каталоге tiger_files, которые заканчиваются на .shp.
FILENAME
= базовое имя файла .shp для присвоения имени новой таблице и создания sql-скрипта.
установлен shp2pgsql. Вы можете получить к нему доступ из командной строки.
shp2pgsql находится в usr / bin / shp2pgsql.
Цикл завершен успешно и создает пустой sql-скрипт — почему shp2pgsql не получает доступа?
Консоль сообщает: Не удается открыть / directory/.shp или / directory /.SHP. /directory /: файл dbf (.dbf) не может быть открыт.
Комментарии:
1. Простейшее из решений: объединение!
2. разбейте $ DIRECTORY и $ f вместе. Нет пробела. $ DIRECTORY $ f = теперь это работает как по волшебству!
3. Тем не менее, вы должны использовать двойные кавычки вокруг любой переменной, которая содержит имя файла.