vc コマンド
目的
識別キーワードの代わりに割り当て値を使用します。
構文
vc [ -a ] [ -t ] [ -s ] [ -cCharacter ] [ Keyword=Value ]...
説明
vc コマンドは、標準入力から標準出力に行をコピーします。 コマンド・ライン上のフラグとキーワード、入力内の制御ステートメントによって出力結果が変ります。 vc コマンドは、ユーザーが宣言したキーワードをコマンド・ライン上に割り当てられた値と置き換えます。 キーワードはテキスト内でも制御ステートメント内でも置き換えられます。
制御ステートメント
制御ステートメントは、制御文字で始まる 1 行のステートメントです (デフォルトの制御文字は : (コロン) です)。 制御ステートメントによって入力の条件付き処理が指定されます。使用できる制御ステートメントのタイプは、以下のとおりです。
:if Condition
Text
項目 | 説明 |
---|---|
:end | 条件が真である場合に限り、:if ステートメントと対応する :end との間の行をすべて標準出力に書き出します。 :if と :end のステートメントはネストできます。 しかし、一度条件が偽になると、ネストされた残りの :if と :end のステートメントは、 すべて無視されます。 条件文の構文および使用できる演算子については、 条件文の構文のセクションを参照してください。 |
:dcl Keyword, [Keyword . . . ] | 指定したキーワードを宣言します。 すべてのキーワードを宣言しなければなりません。 |
:asg Keyword=Value | 指定した値を指定したキーワードに割り当てます。 :asg ステートメントは、vc コマンド・ラインのキーワード割り当てに優先します。 後の :asg ステートメントは、関連したキーワードのそれ以前の割り当てをすべてオーバーライドします。 宣言されても値 が割り当てられていないキーワードには、NULL 値が入ります。 |
:: Text | 先行制御文字を 2 文字除去し、キーワードをそれぞれの値に置き換えて、その行を標準出力にコピーします。 |
:on または :off | すべての行においてキーワード置換をオンまたはオフにします。 |
:ctl Character | 制御文字を Character 値に変更します。 |
:msg Message | 標準エラー出力に、次のフォーマットでメッセージを書き込みます。
Message(n): message
|
:err Message | エラー・メッセージを標準エラーに書き込みます。
vc コマンドは処理を停止し、終了値の 1 を戻します。
エラー・メッセージのフォーマットは、次のとおりです。
|
条件文の構文
使用できる項目とステートメントは、以下のとおりです。
condition ::=OR statement
::=NOR statement
OR statement ::=AND statement
::=AND statement | OR statement
AND statement ::=expression
::=expression & AND statement
expression ::=( OR statement )
::=value operator value
operator value ::= = or != or < or >
::= ASCII string
::= numeric string
使用できる条件演算子とその意味は、以下のとおりです。
項目 | 説明 |
---|---|
= | 等しい |
!= | 等しくない |
& | AND |
&| | OR |
> | よりも大きい |
< | よりも小さい |
( ) | 論理グループ化に使用 |
NOT | if の直後にだけ存在し、これがあると完全条件の値が反転されます。 |
> および < (大なり記号および小なり記号) は、符号なし整数値にのみ使用できます。 例えば、012 > 12 は偽です。 他のすべての演算子は文字列を修飾子として処理します。 例えば、012 = 12 は真です。 演算子の優先順位は、以下のとおりです。
- = ! = > < (すべて同じ優先順位)
- &
- &|
括弧を使用して優先順位を変更できます。
値と演算子や括弧の間には、ブランクかタブを少なくとも 1 つ入れなければなりません。
キーワード置換
キーワードの最初と最後は、制御ステートメントに使用した制御文字と同じものでなければなりません。 キーワードは最高で 9 桁の英数字です。 最初の文字は英字でなければなりません。 キーワード値はどのような ASCII 文字列であってもかまいません。 数字キーワード値は、符号なし数字文字列です。 値にタブやスペースは使用できません。
フラグ
項目 | 説明 |
---|---|
-a | テキスト行全体に渡って、制御文字で囲まれたキーワードを、その割り当てられた値と置き換えます (2 つの制御文字で始まるものに限定しない)。 |
-cCharacter | Character 値を制御文字として使用します。 Character パラメーターには、ASCII 文字を指定しなければなりません。 |
-s | 通常は標準エラーに表示される警告メッセージを表示しません。 |
-t | 制御ステートメントを検出するために、行頭から最初のタブ文字まで (タブ文字を含む) のすべての文字を無視します。 vc コマンドは、制御文字を検出すると、タブまで (タブを含む) のすべての文字を無視します。 |
終了状況
このコマンドは、以下の終了値を戻します。
項目 | 説明 |
---|---|
0 | 正常終了。 |
>0 | エラーが発生しました。 |
例
- Keyword=Value 割り当ての例を次に示します。
vc コマンドは、標準出力にテキストを書き込むときに、2 つの制御文字でマークされた入力テキスト行からすべての制御文字とキーワードを除去します。numlines=4 prog=acctg pass4=yes
- 制御文字を解釈しないようにするには、次のように制御文字の前に円記号を置きます。
:prog: キーワードはその値によって置き換えられますが、¥: は : (コロン) として標準出力に渡されます。::the :prog: program includes several of the following¥:
円記号 (¥) で始まり制御文字が後に続く入力行は、制御行として処理されず、円記号を取り除いて標準出力にコピーされます。 これに対して、vc コマンドは、円記号で始まり、後に制御文字がない行は何も変更せずに書き込みます (先頭の円記号もそのまま)。
ファイル
項目 | 説明 |
---|---|
/usr/bin/vc | vc コマンドが入っています。 |