OpenVMS
DCL ディクショナリ


前へ 次へ 目次 索引



DIAGNOSE (Alpha のみ)

Alpha システム上で,DIAGNOSE コマンドは DECevent 管理ユーティリティを起動し, 1 つまたは複数のログ・ファイルの内容を選択的にレポートします。

DECevent ユーティリティについての詳細は,『OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』またはオンライン・ヘルプを参照してください。


形式

DIAGNOSE [修飾子...] [ファイル指定][,...]


DIFFERENCES

2 つのディスク・ファイルの内容を比較し,一致しないレコードのリストを表示します。

形式

DIFFERENCES 第1ファイル [第2ファイル]


パラメータ

第 1 ファイル

比較のために入力する最初のファイルの名前を指定します。ファイルには,ファイル名とファイル・タイプを指定しなければなりません。ファイルの中で,ワイルドカード文字は使用できません。

第 2 ファイル

比較のために 2 番目に入力するファイルの名前を指定します。省略したフィールドに対しては,第 1 ファイルの対応するフィールドが使用されます。ファイルの中で,ワイルドカード文字は使用できません。

第 2 ファイルを指定しない場合には,DIFFERENCES コマンドは,第 1 ファイルの 1 つ前のバージョンを使用します。


説明

2 つのファイルが同じかどうか,また異なる場合どのように異なるかを判定するには,DIFFERENCES コマンドを使用します。 DIFFERENCES コマンドは,指定された 2 つのファイルをレコードごとに比較し,異なる場合は差をリストする出力ファイルを生成します。

DIFFERENCES コマンドの修飾子は,次のように機能別に分類できます。

省略時の設定では,DIFFERENCES コマンドの出力は,現在の SYS$OUTPUT 装置に書き出されます。出力を別のファイルまたは装置に書き出すには, /OUTPUT 修飾子を使用します。

DIFFERENCES コマンドは,終了状態で終了します。比較の結果は,次の重大度で示されます。

SUCCESS ファイルは同じです。
INFORMATIONAL ファイルは異なります。
WARNING DIFFERENCESの利用者指定最大数を超えました。
ERROR 仮想メモリの不足のため,比較を完了できません。

SUCCESS 以外のすべての重大度は,2つの入力ファイルが異なることを表します。


修飾子

/CHANGE_BAR[=([変更バー文字][,[NO]NUMBER])]

指定された文字を使用して違いをマークします。/CHANGE_BAR 修飾子が表示する出力は,/CHANGE_BAR 修飾子を指定した位置により異なります。次の例では,/CHANGE_BAR 修飾子の位置による結果について説明します。

次の例では,前のバージョン input.file とは異なる行すべての先頭にシャープ記号 (#) の付いた最新のバージョンを表示します。


$ DIFFERENCES input.file/CHANGE_BAR=#

次の例では,input.file;1 と異なる行すべての先頭にシャープ記号 (#) の付いた input.file;2 を表示します。


$ DIFFERENCES input.file;1  input.file;2 /CHANGE_BAR=#

次の例では,input.file;2 と異なる行すべての先頭にシャープ記号 (#) を付けた input.file;1 を表示します。


$ DIFFERENCES input.file;1/CHANGE_BAR=#  input.file;2

次の例では,input.file;2 と異なる行すべての先頭にパーセント記号 (%) を付けた input.file;1 と,input.file;1 と異なる行すべての先頭にシャープ記号 (#) を付けた input.file;2 を表示します。


$ DIFFERENCES input.file;1/CHANGE_BAR=% input.file;2/CHANGE_BAR=#

/COMMENT_DELIMITER[=(区切り文字[,...])]

指定されたコメント区切り文字より右の文字を無視します。

1 文字だけ指定する場合は,括弧は省略できます。引用符で囲んでいない小文字は,自動的に大文字に変換されます。英数字以外の文字 ( たとえば ! や,) は,引用符で囲まなければなりません。複数文字のコメント文字は使用できません。文字自体,または次に示すキーワードのいずれか 1 つをタイプすることにより,最大 32 のコメント文字を指定できます。一意に認識できれば,キーワードは 2 文字までに短縮できます (1 文字だと,区切り文字であると認識されます )。

キーワード 文字
COLON コロン (:)
COMMA コンマ (,)
EXCLAMATION 感嘆符 (!)
FORM_FEED フォーム・フィード
LEFT 左かぎかっこ ([)
RIGHT 右かぎかっこ (])
SEMI_COLON セミコロン (;)
SLASH スラッシュ (/)
SPACE スペース
TAB 水平タブ

/COMMENT_DELIMITER 修飾子を指定すると,/IGNORE=COMMENTS 修飾子も暗黙に含まれます。

ある文字の大文字と小文字のどちらも区切り文字として使用する場合には,その文字を 2 回指定し,1 回は大文字で,もう 1 回は小文字で指定します。 /COMMENT_DELIMITER 修飾子にコメント文字もキーワードも指定しないと, DIFFERENCES コマンドはファイル・タイプにより省略時の設定のコメント文字を想定します。あるファイル・タイプ (.COB および .FOR) では,行の 1 桁目にある場合のみ,省略時の設定のコメント文字は有効な区切り文字とみなされます。

ファイル・タイプと,省略時の設定のコメント文字を次の表に示します。

ファイル・タイプ 省略時の設定のコメント文字
.B2S, .B32, .BAS, .BLI !
.CBL, .CMD ! and ;
.COB 1 桁目の * または /
.COM, .COR !
.FOR 任意の位置の ! ,および 1 桁目の C, D, c, d
.HLP !
.MAC, .MAR ;
.R32, .REQ !

/EXACT

/PAGE=SAVE および /SEARCH 修飾子とともに使用し,正確に一致する文字列検索を指定します。この場合,検索文字列は二重引用符 ("") で囲まなければなりません。

/SEARCH 修飾子を指定せずに /EXACT 修飾子を指定した場合は, Find(E1) キーを押すと文字列検索が有効になります。

/HIGHLIGHT[=キーワード]

/PAGE=SAVE および /SEARCH 修飾子とともに指定し,一致した検索文字列の強調表示方法を指定します。一致した検索文字列があった場合は,行全体が強調されます。キーワードには BOLD,BLINK,REVERSE, および UNDERLINE を指定できます。省略時の設定は BOLD です。

/IGNORE=(オプション[,...])

比較するときに,指定した文字,文字列,またはレコードを無視することを指定します。/IGNORE 修飾子は,比較レコードが入力ファイルに記憶されている形と同じようにリスト・ファイルに出力されるのか,指定した文字を無視して編集されたレコードとして出力されるのかも制御します。キーワードを 1 つだけ指定する場合は,括弧は省略できます。キーワード・パラメータは,文字またはキーワードを参照します。最初のキーワードは,(無視する文字があれば) 比較の際に無視する文字を決め,2 番目のキーワードは無視した文字を出力に含めるかどうかを決めます。/IGNORE 修飾子のオプションとして指定できるキーワードを次に示します。

キーワード 無視される項目
BLANK_LINES データ間のブランク行
CASE 比較されるテキストの大文字小文字
COMMENTS コメント区切り文字の後に続くデータ( /COMMENT_DELIMITER 修飾子を使用して,1 つまたは複数のコメント区切り文字を指定します)。
FORM_FEEDS フォーム・フィード文字
HEADER[=n] 最初の文字がフォーム・フィードであるレコードから順に,最初の n レコード ( そのレコードに含まれる文字がフォーム・フィードだけの場合には,最初のレコードは無視されません )。 n の省略時の値は 2 です。
SPACING データ行の内部に含まれる複数のスペース,またはタブ ( 連続するスペースまたはタブは 1 つのスペースに変更されます )。
TRAILING_SPACES データ行の最後のスペース文字およびタブ文字
キーワード 出力で無視される項目の状態
EDITED 無視された文字が,削除された状態で出力レコードが作成される。
EXACT 入力ファイルと正確に同じ状態で出力レコードが作成される。
PRETTY 出力レコードは,形式化される。

各データ行に対して,まず COMMENTS,FORM_FEEDS,HEADER,および SPACING がチェックされ,そのあと TRAILING_SPACES と BLANK_LINES がチェックされます。したがって,COMMENTS,TRAILING_SPACES,および BLANK_LINES を無視することを DIFFERENCES に指示すると,コメントのあとに続くいくつかのスペース,またはブランク行のレコードは,完全に無視されます。

省略時の設定では,DIFFERENCES コマンドは,各ファイルのすべての文字を比較し,すべての相違点を報告します。また,無視された文字をすべて削除した状態で,出力ファイルにレコードを出力します。

/PARALLEL 修飾子を指定した場合は,出力の形式化が常に実行されます。次の表は,変換される文字に対応する出力を示しています。

文字 形式化された出力
タブ (Ctrl/I) 1 個から 8 個のスペース
Return (Ctrl/M) <CR>
ライン・フィード (Ctrl/J) <LF>
垂直タブ (Ctrl/K) <VT>
フォーム・フィード (Ctrl/L) <FF>
他のプリントされない文字 . (period)

/MATCH=サイズ

一致していることを解釈するために,必要なレコード数を指定します。省略時の設定では,DIFFERENCES は一致しないレコードを検出したあと,一致するレコードが 3 つ連続して検出されると,そのファイルは一致しているものとして処理を続けます。この省略時の値である 3 を変更するには,/MATCH 修飾子を使用します。

DIFFERENCES が相違点を検出したあとで,誤った位置を「一致している」と解釈している場合は,/MATCH の値を大きくします。

/MAXIMUM_DIFFERENCES=n

一致しないレコードが指定された数だけ検出されると, DIFFERENCES が終了することを指定します。

一致しないレコード総数は,異なる各セクションごとに異なるレコードの最大数を求め,それを加算することによって判断できます。

DIFFERENCES は,指定した一致しないレコードの最大数に到達すると,その最大数に到達する前に検出したレコードだけを出力します。また 1 つのリスト形式だけを出力し,警告メッセージを表示します。

省略時の設定では,一致しないレコードの最大数は設定されていません ( 指定された入力ファイルに含まれるすべてのレコードが比較されます )。

/MERGED[=n]

出力ファイルに相違点のマージされたリストが含まれることを要求します。 n の値は,一致しないレコードの各リストのあとで,出力される一致したレコード数を示します。この値は,一致サイズに等しい,あるいはそれより小さい値で 10 進数でなければなりません ( /MATCH=サイズ修飾子を参照 )。省略時の値では,DIFFERENCES コマンドは,一致しないレコードの各セットのあとで,一致した 1 つのレコードを含む,マージされた ( 相違点について 2 つのレコードが記録された ) リストを作成します (/MERGED=1)。 /MERGED, /SEPAREATED および /PARALLEL のいずれも指定されない場合は,一致しないレコードの各セットのあとで,一致した 1 つのレコードを含む,マージされたリストを作成します

省略時の n の値を変更する場合や,他のタイプの出力と相違点についての 2 つのレコードが記録されたリストを作成する場合には,/MERGED 修飾子を使用します。

/MODE=(基数[,...])

出力リストの形式を指定します。次のキーワードを指定することにより, 1 つまたは複数の基数モードによる出力を作成できます。 ASCII ( 省略時の設定 ),HEXADECIMAL,OCTAL キーワード (1 つまたは複数 ) は括弧で囲みます。これらのキーワードは, 1 文字または複数の文字に省略できます。

省略時の設定では,DIFFERENCES は出力を ASCII モードで作成します。複数の基数モードを指定する場合には,出力リストには,指定した各基数で,ファイルの比較が示されます。複数の基数モードを指定する場合には,各モードをコンマで区切らなければなりません。

/PARALLEL 修飾子,または /SLP 修飾子を指定すると,それらの形式に対して, /MODE 修飾子は無視されます。

/NUMBER (省略時の設定)

/NONUMBER

リストに含まれるレコードに,行番号を付けるかどうかを制御します。省略時の値では,行番号はリストに含まれます。

/OUTPUT[=ファイル指定]

相違点を示した出力リストが書き込まれる,出力ファイルを指定します。 /OUTPUT 修飾子を省略する場合には,出力は現在の SYS$OUTPUT 装置に書き込まれます。/OUTPUT 修飾子だけを使用しファイル推定を省略すると,出力は,第1ファイルと同じ名前のファイルに書き込まれます。この場合のファイル・タイプは DIF になります。ファイル指定に,ワイルドカード文字は使用できません。

/OUTPUT を指定すると,『OpenVMS ユーザーズ・マニュアル』に説明されているような,出力ファイル指定に対して適用される,省略時の値を使用できます。省略時の出力ファイル・タイプは DIF です。

/PAGE[=キーワード]

/NOPAGE (省略時の設定)

画面上の差分情報の表示を制御します。

次のキーワードを指定できます。

CLEAR_SCREEN ページ・モードで表示(毎回画面を消去する)
SCROLL スクロール・モードで表示(毎回画面を消去しない)
SAVE[=n] n ページ分の履歴を保持する(前ページに戻ること等が可能)

/PAGE=SAVE 修飾子を使用すると,最大 5 画面 (最大 255 カラムまで) 分の履歴を保存できます。ページャ内では,次のキーを使って画面の移動などができます。

キー・シーケンス 意味
Up arrow key, Ctrl/B 1 行スクロール・アップ
Down arrow key 1 行スクロール・ダウン
Left arrow key 1 カラム左シフト
Right arrow key 1 カラム右シフト
Find (E1) 文字列検索を起動
Insert Here (E2) 半画面右シフト
Remove (E3) 半画面左シフト
Select (E4) 80/132 カラム切り替え
Prev Screen (E5) 前ページに移動
Next Screen (E6), Return, Enter, Space 次ページに移動
F10, Ctrl/Z 終了(ユーティリティによっては異なることがあります)。
Help (F15) ヘルプ・テキストを表示
Do (F16) 最新(現在)の画面と(履歴内で)最古画面の切り替え
Ctrl/W 再表示

/PAGE 修飾子は,/OUTPUT 修飾子と同時に指定できません。

/PARALLEL[=n]

一致しないレコードのパラレル・リスト ( 横に並べた形式のリスト ) を出力することを指定します。n の値は,一致しないレコードの各リストのあとに出力される,一致したレコード数を示します。この値は 10 進正数であり,MATCH に指定されている値以下でなければなりません ( /MATCH=サイズ修飾子を参照 )。

省略時の設定では,DIFFERENCES コマンドは,一致しないレコードの各リストのあとに,一致したレコードを加えたリストを作成しません。また DIFFERENCES は,マージされた相違点のリストだけを作成します。

/SEARCH="文字列"

/PAGE=SAVE 修飾子とともに指定して,表示される情報内で検索したい文字列を指定します。スペース文字等を含む場合は,検索文字列は引用符で囲まなければなりません。

情報が表示されている時に Find(E1) キーを押すと,検索文字列を動的に変更することができます。この場合は,引用符は必要ありません。

/SEPARATED[=MASTER,REVISION]

指定したファイルから一致しないレコードだけのリストを作成し,それを順番に出力します。第 1 ファイルからのリストだけを作成するには,キーワード MASTER を指定します。第 2 ファイルからのリストだけを作成するには,キーワード REVISION を指定します。

省略時の設定では,DIFFERENCES は,相違点のマージされたリストだけを作成します。

/SLP

DIFFERENCES が,SLP エディタへの入力に適した出力ファイルを作成することを指定します。/SLP 修飾子を指定する場合には,/MERGED 修飾子,/PARALLEL 修飾子, /SEPARATED 修飾子および /CHANGE_BAR 修飾子という出力ファイル修飾子は指定できません。

SLP 修飾子によって作成される出力ファイルは,第 1 入力ファイルを更新するために,SLP への入力として使用できます ( 第 1 入力ファイルを第 2 入力ファイルと一致するように変更できます )。

/SLP だけを指定し,/OUTPUT 修飾子を指定しない場合には,DIFFERENCES は,第 1 入力ファイルと同じファイル名でファイル・タイプが DIF であるファイルに,出力ファイルを書き込みます。

/WIDTH=n

出力リストの 1 行の幅を指定します。省略時の設定では出力は 132 文字の幅ですが,出力がターミナルに送られるときは例外です。この場合には,出力の幅は,ターミナルの行の幅によって制御されます。

ターミナルの 1 行の幅を変更するには,SET TERMINAL コマンドを使用します。

/WINDOW=サイズ

一致しないレコードのリストを作成し,第 1 入力ファイルの次のレコードに対して処理を継続する前に,検索するレコードの数を制御します。省略時の設定では,DIFFERENCES は,一致しないレコードをリストする前に,両方の入力ファイルの最後まで検索します。

ウインドゥ・サイズは,相違セクションの最小サイズであり,これは DIFFERENCES コマンドが 2 つの入力ファイル間の同期を失う原因となります。

/WRAP

/NOWRAP (省略時の設定)

/PAGE=SAVE 修飾子とともに指定し,画面の幅より長い行を改行表示するかどうかを指定します。 /WRAP 修飾子を指定した場合は,はみだす部分は次の行に改行されます。

/NOWRAP 修飾子を指定した場合は,はみだした部分は左右にスクロールしながら見ることができます。


#1

$ DIFFERENCES EXAMPLE.TXT
************
File DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2
    1   DEMONSTRATION 
    2   OF V7.3 DIFFERENCES
    3   UTILITY
******
File DISK1:[CHRIS.TEXT]EXAMPLE.TXT;1
    1   DEMONSTRETION 
    2   OF VMS DIFFERENCES
    3   UTILITY
************
Number of difference sections found: 1
Number of difference records found: 2
DIFFERENCES/ IGNORE=()/MERGED=1-
       DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2-
       DISK1:[CHRIS.TEXT]EXAMPLE.TXT;1

この DIFFERENCES コマンドは,現在の省略時のディレクトリの EXAMPLE.TXT というファイルの, 2 つの最新バージョンの内容を比較します。 DIFFERENCES は,各レコードのすべての文字を比較し,その結果をターミナルに表示します。

#2

$ DIFFERENCES/PARALLEL/WIDTH=80/COMMENT_DELIMITER="V" EXAMPLE.TXT
-------------------------------------------------------------------------------
File DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2  |  File DISK1:[CHRIS.TEXT]EXAMPLE.TXT;1
------------------- 1 ------------------------------------- 1 -----------------
DEMONSTRATION                          |  DEMONSTRETION                    
-------------------------------------------------------------------------------
Number of difference sections found: 1
Number of difference records found: 1
DIFFERENCES/IGNORE=(COMMENTS)/COMMENT_DELIMITER=("V")/WIDTH=80/PARALLEL-
       DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2-
       DISK1:[CHRIS.TEXT]EXAMPLE.TXT;1

上記の例と同様にファイルを比較します。ただし,行の最初に "V" のつくすべての文字列は無視されます。また,違いのパラレル・リストを 80 桁で表示します。

#3

$ DIFFERENCES/WIDTH=80/MODE=(HEX,ASCII) EXAMPLE.TXT/CHANGE_BAR
************
File DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2
    1 ! DEMONSTRATION 
    2 ! OF V7.3 DIFFERENCES
    3   UTILITY
************
************
File DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2
RECORD NUMBER 1 (00000001) LENGTH 14 (0000000E)  ***CHANGE***
     204E 4F495441 5254534E 4F4D4544 DEMONSTRATION .. 000000
RECORD NUMBER 2 (00000002) LENGTH 19 (00000013)  ***CHANGE***
 4E455245 46464944 20302E33 5620464F OF V7.3 DIFFEREN 000000
                              534543 CES............. 000010
RECORD NUMBER 3 (00000003) LENGTH 7 (00000007) 
                     595449 4C495455 UTILITY......... 000000
************
Number of difference sections found: 1
Number of difference records found: 2
DIFFERENCES /WIDTH=80/MODE=(HEX,ASCII) 
       DISK1:[CHRIS.TEXT]EXAMPLE.TXT;2/CHANGE_BAR-
       DISK1:[CHRIS.TEXT]EXAMPLE.TXT;1

例 1 と同様にファイルを比較します。ただし,違いを 16 進形式と ASCII 形式でリストします。また,省略時の設定の変更バーを出力で使用するよう指定しています。 16 進形式での省略時の設定の変更バーは,***CHANGE*** です。 ASCII 形式での省略時の設定の変更バーは,感嘆符です。

#4

$ DIFFERENCES/OUTPUT BOSTON::DISK2:TEST.DAT OMAHA::DISK1:[PGM]TEST.DAT

この DIFFERENCES コマンドは,遠隔ノードにある 2 つのファイルを比較し違いを表示します。第 1 ファイルは,遠隔ノード BOSTON にある TEST.DAT です。第 2 ファイルは,遠隔ノード OMAHA にある TEST.DAT です。出力ファイルは DISK1:[PGM]TEST.DIF です。


前へ 次へ 目次 索引