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

[ 英語 | 日本語 ]

形式

DfromLine [ -c ] [ -F ] [ -n newline-replacement ] [ -t default-delimiter ] [ -z default-options ] field-format-list [ input-file.. ]

DfLDfromLineの短縮形(UNIXのみ)。

説明

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)を与える。 省略時はオプションなしである。

既定フィールド名

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

使用例

入力ファイル"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