DfromLine - 行データからDファイルへ

[ 英語 | 日本語 ]

[Dホームページへ]

形式

DfromLine [ options ] [ -t default-delimiter ] field-format-list [ input-file.. ]

説明

DfromLineは,input-filesの各行をDレコードに変換する。 フィールド名とフォーマットは, field-format-listで与える。 field-format-listの詳細は マニュアル D_fmt参照。

オプション

-c
行継続を有効にする。これは,入力フォーマットオプションで qQ または b の指定とともに用いる。 オプション-cがないと,入力スキャナーは, 行の終わりを越えて1フィールドを読むことはない。 このオプションが指定され,かつ入力クォーティング オプションが有効な状態で,入力スキャナーが行の終わりに到達すると (改行制御文字がエスケープまたはクォートされている) 次の入力行を当該Dレコードの一部として読み込む。 この場合,改行制御文字は, -nオプションで指定された文字列に置き換えられる。
-F
"filename"フィールドを各出力レコードに付加する。 値は,シェルから渡された入力ファイル名である。 入力ファイルが標準入力の場合このフィールドは付加されない。
-n newline-replacement
オプション-cとともに用い, 改行制御文字を代替する文字列を指定する。 このオプションの指定がない場合,NULL文字列となる。 (改行制御文字は単に除去される)。
-t default-delimeter
field-format-listに対する省略時区切り字を与える。 省略時はTAB(制御文字HT)となる。
-z default-options
field-format-listに対する省略時のフォーマットオプション (lrqxQbf)を与える。 省略時はオプションなしである。
-D [i/o]datautf=8|16|32
UTF入出力機能参照。

既定フィールド名

filename:
オプション-Fが指定されたとき各レコードの最後。

環境変数

Ddatautf, Didatautf, Dodatautf
UTF入出力機能参照。

使用例

入力ファイル"directory"から,TABで区切られた 名前,住所,電話番号をフィールド名"name","addreess","phone-number" で読み込む。

DfromLine name,adddress,phone-number directory

UNIXのpasswd (5)ファイルを読み込む。

DfromLine -t ":" "username,password,uid,\
gid,gcos-field,home-dir,login-shell" /etc/passwd

csvファイルをフィールド名"a","b","c"として読み込む。

DfromLine -t "," -z q a,b,c

(先頭行にラベルはないものと仮定する。)

上記csvファイルを読むが,データ中に改行を含むとする。 改行制御文字は"@@@"で置き換える。

DfromLine -t , -z q -c -n @@@ a,b,c

入力:

"separated
line",B,C

出力:

a:separated@@@line
b:B
c:C

言語Cのソースファイルから語とリテラルを読む。

DfromLine -t "[^a-zA-z0-9_]+" -z qQb -c "wd:*" *.c

IBM80欄カード上のクラシックFORTRAN(FORTRAN77より前の)ソースを読む。 (最初のカラムは注釈マーク,2-5カラムが行番号,カラム6が継続行マーク,カラム7-72がソースで,カラム73-80がカード識別番号というものであった)。

DfromLine "comment:(1),number:1-4r,cont:(1),source:6-71,cardno:72-79"

テキストファイルを1文字づつのリピーティングフィールドとして読む。

DfromLine "char:*" *.txt

メッセージ

マニュアル D_msg参照。

参照

DintroDtoLineDfromCsvD_fmtD_msg

AUTHOR

MIYAZAWA Akira


miyazawa@nii.ac.jp
2003