Bash cleanup csv header
Clean up CSV header row using bash.
#!/usr/bin/env bash
# Takes a CSV input file and replaces all non alpha numeric characters
# in the header (first line) with underscore. Makes it nice to import into
# SQL database.
FILE=$1
if [ -a $FILE ]; then
HEADER=$(head -1 "$FILE" | tr '[:upper:]' '[:lower:]')
export IFS=","
NEW_HEADER=''
COM=''
for word in $HEADER; do
NEW_HEADER="${NEW_HEADER}$COM${word//[^a-zA-Z_]/_}"
COM=','
done
sed -i "1s/.*/$NEW_HEADER/" "$FILE"
else
echo "file, $FILE, not found"
fi