2011.04.20
 

ファイル名リストを簡略化する

Question

以下のコマンドでディレクトリー中のファイルのリストを取得しています。

OVRDBF FILE(STDOUT) TOFILE QTEMP/DIROUTPUT)
CHGVAR VAR(&QSHCMD) VALUE('find' *BCAT '/edi/inbound' +
   *BCAT '-type f')
QSH CMD(&QSHCMD)

コマンドをインバウンド・ディレクトリーだけに制限する方法はありませんか。インバウンドの下のアーカイブ・サブディレクトリーがあり、さらにこれらのファイルをプルしています。パスとファイル名両方ではなく、ファイル名だけを取得できないでしょうか。

Answer

このコマンドなら、サブディレクトリーやパス名なしで、ファイル名のリストを提供してくれます。

CHGVAR VAR(&QSHCMD) +
   VALUE('cd /edi/inbound && ls -1F | grep -v /')

ls コマンドがディレクトリー中のファイルをリストします (しかし、再帰的にサブディレクトリーに降りてリストすることはありません)。-1 スイッチにより ls は強制的に行当たりファイル名を 1 つリストします。-F スイッチはサブディレクトリー名の前に / を付加するため、他のファイルと区別ができます。grep -v / はそれらのサブディレクトリー名をストリッピングするため、ファイル名だけ取得できるのです。

ページトップ

ボタン