aboutsummaryrefslogtreecommitdiffhomepage
path: root/bin/csv/csv.move_column
diff options
context:
space:
mode:
authorHsieh Chin Fan <pham@topo.tw>2023-02-14 13:33:23 +0800
committerHsieh Chin Fan <pham@topo.tw>2023-02-14 13:33:23 +0800
commit6fae25b305d714b3ab7608fa003f1af9bf024545 (patch)
tree05507b2c0505659d2fd847ecce988dacab63a236 /bin/csv/csv.move_column
parent41ad31a2dee9ff912f222652f022b4c55cddcbf7 (diff)
Rename tools into bin
Diffstat (limited to 'bin/csv/csv.move_column')
-rwxr-xr-xbin/csv/csv.move_column18
1 files changed, 18 insertions, 0 deletions
diff --git a/bin/csv/csv.move_column b/bin/csv/csv.move_column
new file mode 100755
index 0000000..a62701f
--- /dev/null
+++ b/bin/csv/csv.move_column
@@ -0,0 +1,18 @@
1#! /bin/bash
2
3# show each field with index in csv
4echo -------------- > /dev/tty
5head -1 < $1 | sed 's/,/ /g' | awk '{for (i=1; i<=NF; i++) printf $i "_" i " "; print ""}' > /dev/tty
6echo -------------- > /dev/tty
7echo > /dev/tty
8
9# get index of lon/lat column
10read -p "Move which column? " origin_col
11read -p "To which index? " new_col
12
13cat $1 |
14# move lon and lat to the first and second column
15awk -F',' -v OFS="," -v origin_th=$origin_col -v new_th=$new_col '\
16 {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 ""}\
17 ' |\
18sed 's/,$//g'