4.13.43 文字列のフィルタリング
機能
WindowsまたはLinux環境で,指定したテキストファイルの文字列に対してフィルタリング処理を行います。実行対象サーバがWindowsの場合はANSIコードページの文字コードで,UNIXの場合はユーザーの環境変数[LANG]で指定している文字コードでフィルタリングを行います。
このドキュメント内で使用している用語を次に示します。
・フィルタリング
指定したテキストファイル(入力ファイル)内の文字列(入力文字列)を指定した「行」「列」の範囲で抽出する処理のことを示します。
・列
行を特定の文字(区切り文字)で分割した一つ一つの文字列を示します。
次に示すプロパティがフィルタリングの条件になります。
・抽出開始行
・抽出終了行
・区切り文字
・抽出列
フィルタリング例を次に示します。
・入力文字列
num,family,poolID,capacity,usageRate
1,VSP,0,7225344,0
2,VSP,1,100423680,5
3,VSP,100,4085760,0
4,VSP,11,6150144,11
・フィルタリング結果
列と列は,区切り文字に指定した文字で区切られます。
例1(抽出開始行が「1」,抽出終了行が「2」,区切り文字が「,」,抽出列が「1,3」の場合)
num,poolID
1,0
抽出開始行および抽出終了行で存在しない行を指定した場合は,存在しない行のフィルタリング結果は出力されません。
例2(抽出開始行が「5」,抽出終了行が「6」,区切り文字が「,」,抽出列が「1,3」の場合)
4,11
抽出列が1列だけの場合は,フィルタリング結果に区切り文字は出力されません。
例3(抽出開始行が「1」,抽出終了行が「2」,区切り文字が「,」,抽出列が「3」の場合)
poolID
0
抽出列で存在しない列を含む複数の列を指定した場合は,存在しない列は空文字になります。
例4(抽出開始行が「1」,抽出終了行が「2」,区切り文字が「,」,抽出列が「1,6」の場合)
num,
1,
行末まで区切り文字が出現しない場合は,行末までを1列目とみなします。
例5(抽出開始行が「1」,抽出終了行が「2」,区切り文字が「#」,抽出列が「1」の場合)
num,family,poolID,capacity,usageRate
1,VSP,0,7225344,0
フィルタリング結果はファイル(出力ファイル)に出力します。
この部品では,次のサーバを前提とします。
・実行対象サーバ
この部品を実行する対象となるサーバです。
プロパティ設定の留意点を次に示します。
(1) 抽出開始行(common.rowPosBeginプロパティ)および,抽出終了行(common.rowPosEndプロパティ)について
・1以上2147483647以下の整数値で指定してください。
・抽出開始行を省略した場合は,1行目から抽出を開始します。
・抽出終了行を省略した場合は,最終行まで抽出します。但し,入力ファイルの行数が2147483647を超える場合は2147483647行まで抽出します。
・抽出開始行≦抽出終了行になるように指定してください。
(2) 区切り文字(common.delimiterCharプロパティ)について
・指定する文字は半角英数字および半角記号で1文字だけとし,省略した場合は半角スペースを設定します。
・指定できる半角記号は,実行対象サーバのOS種別によって異なります。
OSがWindowsの場合は「 」(半角スペース),「!」,「#」,「$」,「%」,「&」,「(」,「)」,「*」,「+」,「,」,「-」,「.」,「/」,「:」,「;」,「<」,「=」,「>」,「?」,「@」,「[」,「¥」,「]」,「^」,「_」,「`」,「{」,「|」,「}」,「~」が指定できます。
「"」,「'」は指定しないでください。指定した場合,この部品が異常終了します。
OSがLinuxの場合は「 」(半角スペース),「#」,「%」,「&」,「(」,「)」,「*」,「+」,「,」,「-」,「.」,「/」,「:」,「;」,「<」,「=」,「>」,「?」,「@」,「[」,「]」,「^」,「_」,「{」,「|」,「}」,「~」が指定できます。
「"」,「'」,「!」,「$」,「¥」,「`」は指定しないでください。指定した場合,この部品が異常終了します。
(3) 抽出列(common.columnPosプロパティ)について
・1以上2147483647以下の整数値で指定してください。例えば,1列目は「1」となります。
・複数列を抽出する場合は,列番号を「,」で区切って設定してください。スペースは入れないでください。
・省略した場合は,全列が抽出範囲の対象になります。
・先頭及び末尾には数字を指定してください。次のように指定した場合,この部品が異常終了します。
「,1,3」「1,3,」「,」
・「,」を連続して指定しないでください。次のように指定した場合,この部品が異常終了します。
「1,,3」
利用場面
この部品は,他の部品が出力した文字列をフィルタリングする場合などに使用できます。
前提条件
【実行対象サーバ内前提製品】/【実行対象サーバの稼働OS】の最新のサポート状況については,リリースノートを参照してください。
また、OSおよび製品について略称を用いています。対象とするOSおよび製品については「はじめに」を参照してください。
【実行対象サーバ内前提製品】
なし。
【実行対象サーバの稼働OS】
(1) Windows Server
(2) Red Hat Enterprise Linux Server
(3) Oracle Linux
【実行対象サーバの使用条件】
なし。
注意事項
(1) プロパティには「"」(ダブルクォーテーション)および「'」(シングルクォーテーション)を含む文字列は指定しないでください。指定した場合,この部品が異常終了します。
(2) Linux環境に対してこの部品を実行する場合は,プロパティに半角の「!」,「$」,「¥」,「`」を指定しないでください。指定した場合,この部品が異常終了します。
(3) 入力ファイルパス(common.inputFilePathプロパティ)と出力ファイルパス(common.outputFilePathプロパティ)に同じパスを指定しないでください。同じパスを指定した場合,この部品が異常終了します。
(4) この部品を同時に実行する場合,同一の出力ファイルを指定しないでください。
(5) 出力ファイル上書きの要否(common.flagOverwriteOutputFileプロパティ)にfalseを指定した場合に出力するファイルが既に存在すると,この部品が異常終了します。
(6) 区切り文字(common.delimiterCharプロパティ)に指定した文字が半角スペースの場合は,次に示す注意事項があります。
・フィルタリングの対象となる文字列が連続した半角スペースで区切られていても,1つの半角スペースで区切られているとみなします。
・フィルタリングの対象となる文字列の先頭または末尾に存在する半角スペースは,その個数に関係なく,存在しないものとみなします。
・実行対象サーバのOS種別がLinuxの場合は,フィルタリングの対象となる文字列内のタブ記号は半角スペースとみなします。
(7) 入力ファイルに入力文字列が存在しない場合でも,この部品は正常終了します。
(8) 入力ファイルの最終行がEOF(End Of File)のみの場合は,実行対象サーバのOS種別によって処理が異なります。
・OSがWindowsの場合は,最終行を入力文字列として扱いません。
・OSがLinuxの場合は,最終行を入力文字列として扱います。
(9) LC_ALLやLC_MESSAGESなどLANGより上位のロケール環境変数が設定されている時,上位のロケール環境変数が優先されてしまうため,部品を実行する際に,LC_ALLやLC_MESSAGESなどの上位のロケール環境変数を解除するか,LANG環境変数と同一の値に変更してください。
バージョン
02.00.00
部品のタグ
Control OS,Windows,Linux
タスクログに表示される部品の名称
osFilterString
戻り値
戻り値 |
説明 |
---|---|
0 |
正常 |
12 |
異常(ユーザーミス) プロパティ不正 |
23 |
異常(環境不正) 前提環境不正 |
27 |
異常(エラー内容はタスクログで確認) |
41 |
異常(部品内でエラーを検知) プロパティ未入力(部品スクリプトでエラーを検知) |
プロパティ一覧
プロパティ一覧を次の表に示します。
プロパティキー |
プロパティ名 |
説明 |
デフォルト値 |
入出力種別 |
必須区分 |
---|---|---|---|---|---|
plugin.destinationHost |
実行対象サーバのホスト名 |
この部品を実行するサーバのホスト名またはIPアドレスを指定します。IPv6アドレスには対応していません。 |
− |
入力 |
○ |
common.inputFilePath |
入力ファイルのパス |
フィルタリング対象の文字列を格納したファイルをフルパスで指定します。 |
− |
入力 |
○ |
common.rowPosBegin |
抽出開始行 |
入力文字列のうち,フィルタリング対象の抽出開始行番号を数字で指定します。省略した場合は,1行目からフィルタリング対象となります。 |
− |
入力 |
△ |
common.rowPosEnd |
抽出終了行 |
入力文字列のうち,フィルタリング対象の抽出終了行番号を数字で指定します。省略した場合は,最終行までフィルタリング対象となります。 |
− |
入力 |
△ |
common.delimiterChar |
区切り文字 |
入力文字列の列と列を区切る文字を,半角英数字または半角記号で1文字だけ指定します。省略した場合は,半角スペースを区切り文字とします。 |
− |
入力 |
△ |
common.columnPos |
抽出列 |
入力文字列のうち,抽出する列番号を数字で指定します。複数列を抽出する場合は,列番号を','で区切って指定して下さい。省略した場合は,全列が抽出範囲の対象になります。 |
− |
入力 |
△ |
common.outputFilePath |
出力ファイルのパス |
フィルタリング結果を出力するファイルをフルパスで指定します。ファイルが存在しない場合は作成します。 |
− |
入力 |
○ |
common.flagOverwriteOutputFile |
出力ファイル上書きの要否 |
出力するファイルが既に存在する場合に,ファイルに上書きするか(true),ファイルに上書きしないか(false)を指定します。 |
false |
入力 |
○ |
common.returnValue |
部品の戻り値 |
この部品の戻り値が格納されます。 |
− |
出力 |
△ |