यदि आप मानक लिनक्स कमांड-लाइन टूल का उपयोग करने के लिए तैयार हैं wc
और grep
फिर मुझे लगता है कि मेरा मुफ्त PGN प्रोसेसर, pgn-extract , प्रत्येक श्रेणी में गेम को गिनने के लिए आवश्यक पूर्व-प्रसंस्करण के बहुत कुछ करेगा। नीचे एक मूल बैश स्क्रिप्ट है जिसे मैंने अवधारणा के प्रमाण के रूप में एक साथ रखा है। यह मानता है कि गेम की आपकी फ़ाइल को कहा जाता है inputfile.pgn
- आवश्यकतानुसार समायोजित करें, या इसे कमांड-लाइन तर्क के रूप में पास करें:
#!/bin/bash
# Output stats on castling.
src=inputfile.pgn
# Pre-process the games to allow textual analysis.
pgn-extract -C -V -N --notags --nochecks --linelength 10000 -s -o stripped.pgn ${src}
# Castling by white: detect a preceding move number.
grep '\. O-O ' stripped.pgn > Wkingside.pgn
grep '\. O-O-O ' stripped.pgn > Wqueenside.pgn
# Castling by black: detect no preceding move number.
grep '[^.] O-O ' stripped.pgn > Bkingside.pgn
grep '[^.] O-O-O ' stripped.pgn > Bqueenside.pgn
# Find games in which no castling occurred.
grep -v ' O-O ' stripped.pgn | grep -v ' O-O-O ' | grep -v '^$' > nocastle.pgn
# Output the FEN of the final position to include castling rights and
# look for the presence of rights.
pgn-extract -C -V -N --notags --nomovenumbers --linelength 10000 -s nocastle.pgn --dropply -1 -F | grep ' [wb] [KkQq]' > rights.txt
# Output the results - assumes valid Result tags in the source.
echo 'Number of games: ' `grep '^\[Result ' ${src} | wc -l`
echo 'W Kingside: ' `cat Wkingside.pgn | wc -l`
echo 'W Queenside: ' `cat Wqueenside.pgn | wc -l`
echo 'B Kingside: ' `cat Bkingside.pgn | wc -l`
echo 'B Queenside: ' `cat Bqueenside.pgn | wc -l`
echo 'Neither: ' `cat nocastle.pgn | wc -l`
echo 'Rights retained: ' `cat rights.txt | wc -l`
मैंने KingBase डेटाबेस (अप्रैल 2019) पर स्क्रिप्ट की कोशिश की और टूटे हुए गेम और डुप्लिकेट को हटाने के बाद निम्नलिखित आँकड़े प्राप्त किए:
Number of games: 2072354
W Kingside: 1633762
W Queenside: 246158
B Kingside: 1670870
B Queenside: 128124
Neither: 69776
Rights retained: 24280
'न तो' आंकड़ा लगभग 3.4% है जबकि 'अधिकार बरकरार' का आंकड़ा लगभग 1.2% है। यदि 20 या उससे कम प्लाई वाले खेलों को हटा दिया जाता है, तो 'न तो' आंकड़ा लगभग 2.9% तक कम हो जाता है और 'अधिकार' का आंकड़ा लगभग 0.7% रह जाता है।