#! /usr/bin/env bash

# Select fields from csv file on standard input specified by second argument using separator in $1.
# Throw away ctrl-M characters that may appear at line ends

# $var:t    ${var##*/}
# $var:h    ${var%/*}
# $var:e    ${var##*.}
# $var:r    ${var%.*}

tr -d '\015' | awk -F$1\
  '\
   BEGIN {print "'"${@:2}"'"; split("'"${@:2}"'",fields);} \
   NR==1 {for (i=1;i<=NF;i++) colnum[$i]=i;} \
   NR>1 {i=1; while (fields[i]!="") {if (colnum[fields[i]]>0) printf $colnum[fields[i]]; printf "'$1'"; i++;} \
   {print "";} \
   }' | sed 's+'"$1"'$++'
