サイト内検索:
mnameread : 複数 name 形式ファイルの一括出力(tag形式出力)
使い方とオプション
mnameread <tagname_file> <filename_file>
-i<init_string>
-d<c>
--off_index
<name_file> にタグ名を羅列したファイルを指定し、 <filename_file> にname型式ファイル名を羅列したファイルを指定すると、指定タグ名順に各name型式ファイルから値を読みだし、各name型式ファイルあたり1行にしてtag形式で出力します。
-i<string> を指定すると、タグが無い、あるいはタグの値が無い場合に値の代わりに <string> を出力します。デフォルトは “_” です。
-d<c> を指定すると、値の中に空白があると、<c> に変換します。 デフォルトは、“_” です。
–check オプションについて
<filename_file>で指定したname型式の同一ファイルの中に下記のようなタグが存在する場合はエラー終了とします。
同一のタグ名称のデータが複数存在する(重複)
あるタグ名単体と同一タグ名_XXX(XXX は固定長数字)が混在する。(別ファイル間での混在はエラー終了しません)
$ cat name1
CODE 1234
NAME ABCD
AMOUNT 1,234
$ cat name2
CODE 5678
NAME EFGH
AMOUNT 12,000
$ cat name3
CODE 9999
NAME ZZZZ
AMOUNT 9,999
$ cat tagname
NAME
CODE
AMOUNT
$ cat filename
name1
name2
name3
$ mnameread tagname filename
NAME CODE AMOUNT
ABCD 1234 1,234
EFGH 5678 12,000
ZZZZ 9999 9,999
タグ名が タグ名_XXX (XXX は固定長数字)の場合、展開後の行が繰り返しされます。 XXX は桁数は任意ですが、001 002 003 ….のように1から連続する値である必要があります。この機能は –off_index で取り消せます。
$ cat name1
CODE_001 1111
CODE_002 2222
NAME ABCD
AMOUNT 1,234
$ cat name2
CODE_001 3333
CODE_002 4444
CODE_003 5555
NAME EFGH
AMOUNT 12,000
$ cat name3
CODE 9999
NAME ZZZZ
AMOUNT 9,999
$ cat tagname
NAME
CODE
AMOUNT
$ cat filename
name1
name2
name3
$ mnameread tagname filename
NAME CODE AMOUNT
ABCD 1111 1,234
ABCD 2222 1,234
EFGH 3333 12,000
EFGH 4444 12,000
EFGH 5555 12,000
ZZZZ 9999 9,999
Version : Wed May 8 08:04:07 JST 2013
© 2021 Universal Shell Programming Laboratory site