53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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))'
 | 
						|
 | 
						|
script_path=`dirname $0`
 | 
						|
 | 
						|
# 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+=($script_path/$tournament/tour_$number)
 | 
						|
    done
 | 
						|
else
 | 
						|
    tour_dirs=($script_path/$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 --re-interval \
 | 
						|
            '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
 |