From 9b7d8677c4bcd7ce785eb3ed71efca4120c8a451 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Tue, 21 Jul 2020 17:22:27 +0800 Subject: Refactor csv2geojson --- tools/csv2geojson | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'tools/csv2geojson') diff --git a/tools/csv2geojson b/tools/csv2geojson index 028aed7..e742be6 100755 --- a/tools/csv2geojson +++ b/tools/csv2geojson @@ -4,11 +4,11 @@ for i in "$@" do case $i in - -s) + -s) lon_col=0; lat_col=1 shift;; - *) + *) csv=$i shift;; esac @@ -16,23 +16,23 @@ done # if no -s option, just read from input if [ "$lon_col" != "0" ]; then - # show each field with index in csv - echo -------------- > /dev/tty - head -1 < $csv | awk -F',' '{for (i=1; i<=NF; i++) printf $i "_" i " "; print ""}' > /dev/tty - echo -------------- > /dev/tty - echo > /dev/tty + # show each field with index in csv + echo -------------- > /dev/tty + head -1 < $csv | tr ',' '\n' | nl > /dev/tty + echo -------------- > /dev/tty + echo > /dev/tty - # get index of lon/lat column - read -p "Number of latitude column: " lat_col - read -p "Number of longitude column: " lon_col + # get index of lon/lat column + read -p "Number of longitude column: " lon_col + read -p "Number of latitude column: " lat_col fi -cat $csv | +(which dos2unix &>/dev/null && dos2unix <$csv || cat $csv) |\ # move lon and lat to the first and second column awk -F',' -v lon_th=$lon_col -v lat_th=$lat_col '\ - BEGIN{OFS=","}\ - {printf $lon_th "," $lat_th; for (i=1; i<= NF; i++) if (i != lat_th && i != lon_th) printf "," $i; print ""}\ - ' |\ + BEGIN{OFS=","}\ + {printf $lon_th "," $lat_th; for (i=1; i<= NF; i++) if (i != lat_th && i != lon_th) printf "," $i; print ""}\ + ' |\ # change csv into array format, like [lon, lat, "field1", field2...] sed 's/[^,]*/"\0"/g; s/.*/[\0]/g' |\ # wrap other fields as a json object, like [lon, lat, {...}] -- cgit v1.2.3-70-g09d2