aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man8/strfile.8
blob: e48845cf2e2c08d0cd83d6a5f95abc90709be654 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
.\" Copyright (c) 1989, 1991, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" 
.\" This code is derived from software contributed to Berkeley by
.\" Ken Arnold.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)strfile.8	8.1 (Berkeley) 6/9/93
.\" jpman %Id: strfile.8,v 1.3 1997/05/20 08:54:30 mihara Stab %
.\"
.Dd June 9, 1993
.Dt STRFILE 8
.Os BSD 4
.Sh 名称
.Nm strfile ,
.Nm unstr
.Nd "文字列を格納するためのランダムアクセスファイルを作成する"
.Sh 書式
.Nm strfile
.Op Fl iorsx
.Op Fl c Ar char
.Ar source_file
.Op Ar output_file
.Nm unstr
.Ar source_file
.Sh 解説
.Nm strfile
は
1 つのパーセント記号
.Ql \&%
を含む行で区切られる行グループを含むファイルを読み込み、
ヘッダ構造と各々の行グループのファイルオフセットを含む
データファイルを作成します。
このファイルによって文字列のランダムアクセスが可能となります。
.Pp
出力ファイルは、それがコマンド行において指定されていない場合、
.Ar source_file Ns Sy .out .
というファイル名になります。
.Pp
指定できるオプションとして、次のものがあります。
.Bl -tag -width "-c char"
.It Fl c Ar char
区切り文字をパーセント記号から
.Ar char
に変更します。
.It Fl i
文字列の並び換えを行なう際に、大文字・小文字を区別しません。
.It Fl o
文字列をアルファベット順に並び換えます。
オフセットテーブルは参照される行グループのアルファベット順に
ソートされます。
文字列の頭のアルファベットと数字以外の文字は無視されます。
このオプションを指定すると、ヘッダ中の
.Ar str_flags
フィールドの
.Dv STR_ORDERED
ビットがセットされます。
.It Fl r
文字列へのアクセスをランダム化します。
オフセットテーブル中のエントリはランダムに並び換えられます。
このオプションを指定すると、ヘッダ中の
.Ar str_flags
フィールドの
.Dv STR_RANDOM
ビットがセットされます。
.It Fl s
なにも表示せずに実行します。終了時にサマリのメッセージを表示しません。
.It Fl x
行グループ中の各アルファベット文字を単純シーザー暗号 
(simple caesar cypher) における 13 ポジションだけローテートします。
このオプションを指定すると、ヘッダ中の
.Ar str_flags
フィールドの
.Dv STR_ROTATED
ビットがセットされます。
.El
.Pp
ヘッダのフォーマットは以下のとおりです。
.Bd -literal
#define	VERSION	1
unsigned long	str_version;	/* バージョン番号 */
unsigned long	str_numstr;	/* ファイル中の文字列の数 */
unsigned long	str_longlen;	/* 最長文字列の長さ */
unsigned long	str_shortlen;	/* 最短文字列の長さ */
#define	STR_RANDOM	0x1	/* ランダムフラグの位置 */
#define	STR_ORDERED	0x2	/* 並び換えフラグの位置 */
#define	STR_ROTATED	0x4	/* rot-13されたテキスト */
unsigned long	str_flags;	/* フラグビットフィールド */
char str_delim;			/* 区切り文字 */
.Ed
.Pp
全てのフィールドはネットワークバイトオーダで書かれます。
.Pp
.Nm unstr
は
.Nm strfile
で行なったことを元に戻すためのものです。
.Ar source_file
中に含まれる文字列を
.Ar source_file Ns Pa .dat
ファイルのヘッダにリストされた順で標準出力に表示します。
.Fl o
を使って
.Nm strfile
を実行した後、
.Nm unstr
を使ってそれをテーブルの順にダンプすることによって、
入力ファイルのソートされたバージョンを作成することが可能です。
.Sh 関連項目
.Xr byteorder 3 ,
.Xr fortune 6
.Sh 関連ファイル
.Bl -tag -width strfile.out -compact
.It Pa strfile.out
デフォルトの出力ファイル。
.El
.Sh 歴史
.Nm strfile
ユーティリティは
.Bx 4.4
から登場しました。