バッチJOBで文字列検索

【2009/09/05 original author WATANABE】

データセットにある特定の文字列を探したいとき、たいていは、ISPF 3.14画面を利用して検索されると思います。

ISPFの前景処理なので、検索している間は当然、そのセッションは使えませんよね。 大きいデータセットを検索する時や、複数データセットを検索する時には不向きだったりします。そんなときには、バッチJOBで検索してみましょう。ただし、場合によっては、CPUをかなり消費するケースがありますので注意しましょう。

処理パラメータがいっぱいありますので、まずは、全行・全列を、くまなく探すサンプルJCLをご紹介します。

EXEC文に指定している”SRCHCMP”は、検索をしたい時に指定するパラメータです。”ANYC”は、小文字・大文字を区別することなく検索をするためのパラメータです。

この例では、対象データセットがPOデータセットだった場合、すべてのメンバーを検索対象としてくれます。検索したいメンバーを指定したい場合は、”SELECT”パラメータをSYSINに指定します。

検索した文字列がヒットすると、リターンコードが01になります。ヒットしないと、リターンコードが00になりますので、検索の結果をリターンコードで判別することもできます。

また、SYSINに”PROCESS LITNM=ISRSLJPN”を指定すると、下記のように日本語表示になります。

*このパラメータを使用したときには、ダブルバイトの文字列が含まれるため、JOBLOGを参照するときには、文字化けしないように”S”ではなく”SB”で参照しましょう。

必要な方は、対話式システム生産性向上機能(ISPF)ユーザーズ・ガイド 第2巻(資料番号:SC19-3628)機械翻訳版の「SuperCリファレンス」をご覧下さい。(英文原典は同サイトにて言語をenglishに設定することで閲覧できます)

※2019/8/15及び2024/4/3マニュアル・サイトへのリンク及び関連する文の1部を、現状に合わせてサイト運営者にて1部修正しました

【2009/09/05 original author WATANABE】