経緯
悲しいことに、2019/05/01の元号代わりの対応をしないといけない状況に追い込まれています。
前回の平成の時に手抜きの対応したために、大量の修正が発生しそうです。
また、最悪なことに和暦の日付をコンスタント値で大小比較したりしていて、ロジックによっては誤作動しまくることが分かってきました。
取りあえず、影響箇所を絞り込むためにCOBOLソースを検索するのにちょっと苦労したので覚え書きを書いておきます。
正規表現で検索
grep -R -E "[ '][0-3][0-9](((01|03|05|07|08|10|12)(0[1-9]|[12]\d|3[01]))|((04|06|09|11)(0[1-9]|[12]\d|30))|(02(0[1-9]|[12]\d)))[ ']" */*.COBOL > /tmp/hizuke.txt
最初の[ ']は文字タイプと数値タイプ混在しているために、どちらもマッチさせるために両端に付けています。
スペースを入れないと、COBOLの場合行番号とかにもマッチするので、それを避けるためのおまじないです。
年はなんとなく平成以外にもマッチする感じですが、細かいことは無視しています。
月はある程度大小と閏月がある程度マッチすると思います。
厳密性には欠けますが、数千本のソースを全数チェックすることは免れそうです。