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
where n is number of the input line on which the message appeared.
:err Message エラー・メッセージを標準エラーに書き込みます。 vc コマンドは処理を停止し、終了値の 1 を戻します。 エラー・メッセージのフォーマットは、次のとおりです。
ERROR: message
ERROR: err statement on line n (vc15)

条件文の構文

使用できる項目とステートメントは、以下のとおりです。

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 エラーが発生しました。

  1. Keyword=Value 割り当ての例を次に示します。
    numlines=4
    prog=acctg
    pass4=yes
    vc コマンドは、標準出力にテキストを書き込むときに、2 つの制御文字でマークされた入力テキスト行からすべての制御文字とキーワードを除去します。
  2. 制御文字を解釈しないようにするには、次のように制御文字の前に円記号を置きます。
    ::the :prog: program includes several of the following¥:
    :prog: キーワードはその値によって置き換えられますが、¥:: (コロン) として標準出力に渡されます。

    円記号 (¥) で始まり制御文字が後に続く入力行は、制御行として処理されず、円記号を取り除いて標準出力にコピーされます。 これに対して、vc コマンドは、円記号で始まり、後に制御文字がない行は何も変更せずに書き込みます (先頭の円記号もそのまま)。

ファイル

項目 説明
/usr/bin/vc vc コマンドが入っています。