#!/usr/bin/env bash
# Assumes the CSV file has a proper header!
thisfile="$0"
main() {
local csv_header grep_result
check_args "$@"
grep_result=$(grep -E "${1}" "${2}")
IFS=',' read -r -a grepArray <<< "$grep_result"
csv_header=$(head -n 1 "${2}")
IFS=',' read -r -a headerArray <<< "$csv_header"
for index in "${!headerArray[@]}"; do
printf "%2s%50s%50s\\n" "$index" "${headerArray[index]}" "${grepArray[index]}"
done
}
exit_help() {
printf "%s\n" "Usage: $thisfile <search regex> <filename>"
exit 1
}
check_args() {
# Check if we have 2 args
if [ "$#" -ne 2 ]; then
exit_help
fi
# Check that argument 2 is an existing file..
[[ ! -z $2 ]] && [[ -f "$2" ]] || exit_help
}
main "$@"
Comments