5.5.18 連続区切り文字オプション(INPCONSEPA,OUTCONSEPAオプション)
連続した区切り文字(ConsecutiveDelimiter)を1つのデリミタ(区切り文字)として扱います。
- INPCONSEPA
-
入力レコードの連続したデリミタを1つのデリミタとして扱います。
このオプションの指定によって,入力レコードのデータそのものが変更されることはありません。
- OUTCONSEPA
-
レコード出力時に,連続したデリミタを1つのデリミタに置き換えて出力します。
このオプションを指定すると,INPCONSEPAも同時に有効となります。また,デリミタの置き換えによって,出力レコード長が変わる場合があるので注意してください。
- 注意事項
-
-
入力ファイルがCSVファイルの場合だけ有効なオプションです。CSVファイル以外に指定しても無効です。
-
複数種類のデリミタを指定している場合,異なるデリミタでも隣接している場合は1つのデリミタとして扱います。OUTCONSEPAオプション指定では,最初のデリミタに置き換えます。
-
入力レコードのデリミタの指定については「5.8.8 cellsepaオペランド」を参照してください。
-
出力レコードのデリミタを変更する場合は,-outfile,-catoutまたは-splitoutパラメタのcellsepaオペランドで変更したいデリミタを指定します。指定方法については「5.10.6 cellsepaオペランド」を参照してください。
-
CSVのレコード編集では,セルとセルの間のデリミタは必ず1文字だけを配置します。連続しているデリミタの移動はできません。また,連続しているデリミタは1文字にまとめられるので注意してください。なお,レコード編集を指定するとデリミタは必ず1文字で配置されることになるので,レコード編集とOUTCONSEPAオプションを同時に指定した場合,OUTCONSEPAオプションは無効となります。CSVのレコード編集機能の詳細については,「5.8.15 csvreorgオペランド」を参照してください。
-
- 指定例
-
-
入力ファイルのデリミタに半角空白とタブの2種類を指定
-
改行文字は「LF」を指定
- 【例1】入力レコードの連続区切り文字オプション指定例
-
-
「-cmdopt INPCONSEPA」指定なし
「INPCONSEPA」の指定がないので,連続したデリミタの間はNULLセル(空のセル)として扱います。
入力セル数は,レコード1は6個(7,8個を参照した場合はNULLセルを仮定),レコード2は8個と解釈されます。
-
「-cmdopt INPCONSEPA」指定あり
連続のデリミタを1つのデリミタとして扱います。
入力セル数は3個と解釈されます。
-
- 【例2】出力レコードの連続区切り文字オプション指定例
-
-
「-cmdopt OUTCONSEPA」指定あり
連続したデリミタを,最初に出現したデリミタに置き換えて出力します。
-
「-cmdopt OUTCONSEPA」および「-outfile cellsepa="'△' ',' TAB '*'"」指定あり
連続したデリミタを,最初に出現したデリミタに対で指定されている出力デリミタに置き換えて出力します。
入力デリミタ
出力デリミタ
△(半角空白)
,(コンマ)
→(タブ)
*(アスタリスク)
-
- 【例3】出力レコードの連続区切り文字オプション「OUTCONSEPA」とレコード編集を同時に指定した例
-
出力レコード編集で,最初に定義したデリミタ(半角空白)が1個配置されます。
レコード編集によって連続デリミタではなくなるので,「OUTCONSEPA」は無効となります。
(exsortコマンド指定パラメタ)
-cmdopt OUTCONSEPA
-outfile
csvreorg="1+3-1 +2-1 +1-1"
-