#!/usr/bin/env sh
# Function to display usage
usage() {
echo "Usage: $0 --input "
exit 1
}
# Check if at least 2 arguments are provided
if [ "$#" -lt 2 ]; then
usage
fi
# Parse arguments
while [[ "$#" -gt 0 ]]; do
case $1 in
--input)
input="$2"
shift 2
;;
*)
usage
;;
esac
done
# Check if input is set
if [ -z "$input" ]; then
usage
fi
# Read from input file, parse with regex, and write to the csv file
regex="(?.{15}) (?\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}) \"(?\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\",\"(?[^\"]+)\",\"(?.{24})\",\"(?GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH|NA)\",\"(?.+)\",\"(?[^\"]+)\",\"(?[^\"]+)\",\"(?\d+)\",\"(?\d+)\",\"(?[^\"]+)\",\"(?[^\"]+)\",\"(?\d+)\",\"(?[^\"]+)\",\"(?[^\"]+)\",\"(?[^\"]+)\",\"(?[^\"]+)\",\"(?[^\"]+)\",\"(?[^\"]+)\",\"(?[^\"]+)\".*"
parse2csv --regex "$regex" --input "$input"