+++ /dev/null
-#!/bin/bash
-
-declare -a data
-cur_data=""
-seperator=""
-valid_count=0
-
-required_fields=(byr iyr eyr hgt hcl ecl pid)
-exec 3<input.txt
-
-while read -u 3 line; do
- if [ "$line" = "" ]; then
- data+=("$cur_data")
- seperator=""
- cur_data=""
- continue
- fi
- cur_data="${cur_data}${seperator}$line"
- seperator=" "
-done
-
-# on the last line, if cur_data isn't empty, add that to the array
-if [ "$cur_data" != "" ]; then
- data+=("$cur_data")
-fi
-
-verify_data() {
- local -n record=$1
-
- for field in ${required_fields[@]}; do
- if ! [ ${kvp[$field]+a} ]; then
- exit 1
- fi
- done
-
- exit 0
-}
-
-for (( i=0; i<${#data[@]}; i++ )); do
- record="${data[$i]}"
- declare -A kvp
- for field in $record; do
- key=${field%:*}
- value=${field#*:}
- kvp[$key]=$value
- done
- if ( verify_data kvp ); then
- valid_count=$((valid_count+1))
- fi
- unset kvp
-done
-
-echo "$valid_count valid entries"