สคริปต์พื้นฐานเพื่อวนซ้ำแบบซ้ำในโฟลเดอร์ย่อยและรวมรูปร่างไฟล์ทั้งหมดไว้ในไฟล์เดียวคือ:
#!/bin/bash
consolidated_file="./consolidated.shp"
for i in $(find . -name '*.shp'); do
if [ ! -f "$consolidated_file" ]; then
# first file - create the consolidated output file
ogr2ogr -f "ESRI Shapefile" $consolidated_file $i
else
# update the output file with new file content
ogr2ogr -f "ESRI Shapefile" -update -append $consolidated_file $i
fi
done
โฮเวอร์ในแนวตั้งตัวอย่างทั้งหมดในเว็บฉันสังเกตเห็นว่าสำหรับกรณีที่ฉันอัปเดตไฟล์เอาต์พุต-nln
แท็กจะถูกเพิ่มตัวอย่างเช่น:
ogr2ogr -f "ESRI Shapefile" -update -append $consolidated_file $i -nln merged
ตามเอกสารระบุว่า:
กำหนดชื่อสำรองให้กับเลเยอร์ใหม่
และฉันสังเกตว่ามันสร้าง shapefile ชั่วคราวเรียกว่า "ผสาน" และในตอนท้ายของลูปไฟล์จะเหมือนกันกับ shapefile สุดท้ายที่ฉันผสาน
ฉันไม่เข้าใจว่าทำไมฉันต้องการสิ่งนี้ เพราะฉันประสบความสำเร็จในการผสานสำเร็จโดยไม่มีแท็กนี้