From 2d2594e95e3e6a52ddb90cb66165ec297243b5d0 Mon Sep 17 00:00:00 2001 From: typebrook Date: Tue, 12 Nov 2019 14:30:20 +0800 Subject: update --- scripts/csv.move_column | 18 ++++++++++++++++++ scripts/csv.reorder | 17 +++++++++++++++++ scripts/csv_reorder | 18 ------------------ 3 files changed, 35 insertions(+), 18 deletions(-) create mode 100755 scripts/csv.move_column create mode 100755 scripts/csv.reorder delete mode 100755 scripts/csv_reorder (limited to 'scripts') diff --git a/scripts/csv.move_column b/scripts/csv.move_column new file mode 100755 index 0000000..a62701f --- /dev/null +++ b/scripts/csv.move_column @@ -0,0 +1,18 @@ +#! /bin/bash + +# show each field with index in csv +echo -------------- > /dev/tty +head -1 < $1 | sed 's/,/ /g' | awk '{for (i=1; i<=NF; i++) printf $i "_" i " "; print ""}' > /dev/tty +echo -------------- > /dev/tty +echo > /dev/tty + +# get index of lon/lat column +read -p "Move which column? " origin_col +read -p "To which index? " new_col + +cat $1 | +# move lon and lat to the first and second column +awk -F',' -v OFS="," -v origin_th=$origin_col -v new_th=$new_col '\ + {for (i=1; i<= NF; i++) if (i == new_th) printf $origin_th OFS $i OFS; else if (i == origin_th); else printf $i OFS; print ""}\ + ' |\ +sed 's/,$//g' diff --git a/scripts/csv.reorder b/scripts/csv.reorder new file mode 100755 index 0000000..ef9766b --- /dev/null +++ b/scripts/csv.reorder @@ -0,0 +1,17 @@ +#! /bin/bash + +# show each field with index in csv +echo -------------- > /dev/tty +head -1 < $1 | awk -F',' '{for (i=1; i<=NF; i++) printf $i "_" i " "; print ""}' > /dev/tty +echo -------------- > /dev/tty +echo > /dev/tty + +# get index of lon/lat column +read -p "type column numbers by new order, like 3 2 1: " order + +arrange=$(echo $order | sed -r 's/([^ ]+)/$\1/g' | tr ' ' ',') + +cat $1 |\ +awk -F',' "BEGIN{OFS=\",\"}{print $arrange}" + + diff --git a/scripts/csv_reorder b/scripts/csv_reorder deleted file mode 100755 index a62701f..0000000 --- a/scripts/csv_reorder +++ /dev/null @@ -1,18 +0,0 @@ -#! /bin/bash - -# show each field with index in csv -echo -------------- > /dev/tty -head -1 < $1 | sed 's/,/ /g' | awk '{for (i=1; i<=NF; i++) printf $i "_" i " "; print ""}' > /dev/tty -echo -------------- > /dev/tty -echo > /dev/tty - -# get index of lon/lat column -read -p "Move which column? " origin_col -read -p "To which index? " new_col - -cat $1 | -# move lon and lat to the first and second column -awk -F',' -v OFS="," -v origin_th=$origin_col -v new_th=$new_col '\ - {for (i=1; i<= NF; i++) if (i == new_th) printf $origin_th OFS $i OFS; else if (i == origin_th); else printf $i OFS; print ""}\ - ' |\ -sed 's/,$//g' -- cgit v1.2.3-70-g09d2