DtoLine [ -f field-format-list ] [ -p field-format-list ] [ -t default-delimiter ] [ -z default-options ] [ input-file.. ]
DtoLine は input-files のD-レコードをテキストファイルの行形式に変換する。 通常では, DtoLine は,入力D-レコードの各フィールドの値部分を省略時デリミタ(TAB)でつないで 1行とし,出力する。 入力D-レコードの全フィールドが, 入力レコード中のフィールド順に従ってつなげられる。 (最後のフィールドの後にはデリミタはつかない。)
省略時デリミタと出力フォーマットオプションは, コマンドオプション -t および -z によって変更できる。
オプション -f field-format-list があると,(ただしオプション -p はない場合) 各フィールド値は与えられたフォーマットにしたがって変換される。 このオプション -f はフィールドを選択しないし,フィールド順も指定しない ことに注意せよ。
オプション -p field-format-list が指定されると, これらのフィールドだけを,この順に出力する。 リストされたフィールドがない場合,値が空文字列として扱う。 リスとされたフィールドがレコード中に複数あるとき, それらの値が繰り返し出力される。 リストされたフィールドがレコード中にまったくない場合, 空行(長さ0の行)が出力される。 このリスト中に同じ名前のフィールドが重複して現れると, 同じ値が重複して出力される。
CSVファイルへの変換(フィールド名行なし)
DtoLine -t , -z q
(入力Dレコードは,すべて同じフィールド順で, リピーティングフィールドもないものであること。 オプション-pを使用して,フィールド順を 保証することも可能である。ただし, この場合もリピーティングフィールドのないこと。)
コマンド:
DtoLine -f "b://,c:/;/,a:/:/"
入力:
a:A1
b:B1
c:C1
d:D1
a:A2
c:C21
b:B2
c:C22
結果:
A1:B1C1;D1
A2:C21;B2C22
コマンド:
DtoLine -p recordcount
入力:
recordcount:1
fieldcount:3
charcount:37
結果:
1
コマンド:
DtoLine -t ":" -f "user:/\,/"
入力:
groupname:sys
passwd:
gid:3
user:root
user:bin
user:sys
user:adm
結果:
sys::3:root,bin,sys,adm
マニュアル D_msg参照。
MIYAZAWA Akira