Add the script to parse `tour_info'.
This commit is contained in:
parent
91d7af15fb
commit
396ff8229e
50
tour-parse
Executable file
50
tour-parse
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
tournament=autumn2013
|
||||||
|
|
||||||
|
# Regexps to parse the result of game
|
||||||
|
date='([0-9]{2}\.[0-9]{2}\.[0-9]{4})'
|
||||||
|
white='(.+)'
|
||||||
|
black='(.+)'
|
||||||
|
result='((1|0|0\.5):(1|0|0\.5))'
|
||||||
|
|
||||||
|
# Directories to search `tour_info' in
|
||||||
|
if [[ $# != 0 ]]; then
|
||||||
|
tour_dirs=()
|
||||||
|
for number in $@; do
|
||||||
|
# Change tour numbers: `1' -> `01', `2' -> `02', and so on
|
||||||
|
number=0"$number"
|
||||||
|
number=${number:(-2)}
|
||||||
|
|
||||||
|
tour_dirs+=($tournament/tour_$number)
|
||||||
|
done
|
||||||
|
else
|
||||||
|
tour_dirs=($tournament/tour_*)
|
||||||
|
fi
|
||||||
|
|
||||||
|
for dir in "${tour_dirs[@]}"; do
|
||||||
|
number=${dir:(-2)}
|
||||||
|
number=${number#0} # remove the leading `0' if any
|
||||||
|
|
||||||
|
echo "- number: ${number}"
|
||||||
|
echo " games:"
|
||||||
|
|
||||||
|
# Add a newline at the end of `tour_info' to parse the last line
|
||||||
|
tour_info=$(cat $dir/tour_info && echo)
|
||||||
|
|
||||||
|
while read line; do
|
||||||
|
# Parsed data of game: date a[1], white player a[2], black
|
||||||
|
# player a[6], and the result a[3]
|
||||||
|
data=( $(echo "$line" | gawk \
|
||||||
|
'match($0, /'${date}' — '${white}' '${result}' '${black}'/, a) \
|
||||||
|
{print (a[1], a[2], a[6], a[3])}') )
|
||||||
|
|
||||||
|
if [[ ${#data[@]} != 0 ]]; then
|
||||||
|
echo " - date: ${data[0]}"
|
||||||
|
echo " white: ${data[1]}"
|
||||||
|
echo " black: ${data[2]}"
|
||||||
|
echo " result: \"${data[3]}\""
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
done <<< "$tour_info"
|
||||||
|
done
|
Loading…
Reference in New Issue
Block a user