public class COMMAND extends Object
hiNote.jarの起動エントリーとなっています。
hiNote.jarにはユーティリティ・プログラムが組まれており、 その起動を行います。
hiNote.jarはotsu.hiNote.COMMAND.mainを入り口とする実行可能jarになっています。
COMMAND.mainは第一引数としてdiffやteeなどのコマンド名をとして受け、それぞれの機能を実行します。
次のような形で実行できます。
java -jar hiNote.jar コマンド名 コマンド引数...
hiNote.jarを別のjarに取り込んだ場合、例えばmyTool.jarとするとotsu.hiNote.COMMANDを明示することにより実行できます。
java -classpath myTool.jar otsu/hiNote/COMMAN コマンド名 コマンド引数...
diff 簡易のテキストファイル比較
簡易のテキストファイル比較コマンドです。
比較対象にしない文字列パターンの指定ができます。
一行の違いで直ちにエラー終了するようになっています。
java -jar hiNote.jar diff ファイル名-1 ファイル名-2 [-encoding 文字コード] [-ignCase] [-ignSpace] [-cannonical] {-ign これ以降の文字は検証しない} {-chk チェックする行の開始文字列} {-omt 無視する文字列正規表現パターン} {-with 構造化正規表現ファイル}
キー | 値 | 説明 |
ファイル名-1 | 比較するファイル名 | |
ファイル名-2 | 比較するファイル名 | |
-encoding | 文字コード |
ファイルの文字コードを指定します。 デフォルトはutf-8です。 -を指定するとシステム標準となります。 hexを指定するとバイナリ比較となります。 |
-ignCase |
大文字小文字を区別しません。 (バイナリ比較の場合は無効です) |
|
-ignSpace |
空白文字を比較しません。 (バイナリ比較の場合は無効です) |
|
-cannonical |
行内の連続する空白文字並びを1個の空白に置き換えて比較します。 (バイナリ比較の場合は無効です) |
|
-ign | これ以降の文字列は検証しません。 | この文字列で始まる行は比較対象としません。 |
-chk | チェックする行の開始文字列 |
-chk指定があると、指定の文字列で始まる行のみが
比較対象となります。 例えば -chk # とすると#で始まる行のみをチェック します。 |
-omt | 無視する正規表現文字列パターン |
指定の正規表現にマッチする部分を消去した形で比較します。 (バイナリ比較の場合は無効です) |
antに組み込んで試験結果をリファレンスと比較する例を 示します。
<!-- 結果をリファアレンスと比較する --> <target name="check"> <antcall target="d"><param name="f" value="kekka.txt"/></antcall> </target> <target name="d"> <java jar="${classpath}" fork="true" failonerror="true" maxmemory="128m" > <arg line="diff ${f} ref_${f} -ign <!-- -omt \[?@.*"/> </java> </target>
この例では-ign指定で"<!--"で始まる行を無視し、-omt指定で[i@a10cf6621..のような
javaの配列のポインタ情報を削除して比較しています。
"<!--"となっているのはantの制限で<が直接書けないからです。
tee 簡易teeコマンド
teeコマンド。
標準入力からのテキストを指定ファイルと標準出力に出力します。
-lineを指定すると、標準出力には入力そのものではなく、マークが表示されます。
-markで表示マークは変更できます。
java -jar hiNote.jar tee ファイル名 [-encoding 入力文字コード,出力文字コード] [-line 経過表示ライン数] [-mark マーク1,マーク2]
キー | 値 | 説明 |
ファイル名 | 出力先ファイル名 | |
-encoding | 入力文字コード、出力ファイル文字コード |
入力側の文字コードと出力ファイルの文字コードを指定します。
入力がEUCで出力がutf-8の場合は -encoding EUC,UTF-8 と指定します。 標準出力はシステム標準となります。 システム標準を用いるには"-"を指定します。デフォルトでは入力側はシステム標準、出力ファイルはUTF-8となっています。 -encoding "-,utf-8" "-"一個だけ指定すると、バイナリ単位での入出力を行います。 -encoding "-" |
-line | 行間隔 |
標準出力に内容を出さず行単位で1文字のマークを出します。 マークは2つで1単位ごとのマークが9個の後10単位ごとのマークが出ます。例えば-line 10を指定すると200行の入力は次の様な表示となります。 .........*.........* 無指定時は内容が表示されます。 |
-mark | 1単位マーク、10単位マーク |
-lineが指定されている場合の1単位ごとのマークと10単位ごとのマークを指定します。デフォルトは -mark ".*" です。(引用符で囲まないとUnixではファイル名展開されてしまうことに注意が必要です) |
wc 簡易wcコマンド
teeコマンド。
指定ファイル群の行数、文字数を数えます。
ワイルドカードが使えます。
wc(WordCount)という名前に反し単語数はあまり意味を持ちません。記号や多バイト文字は無視されます。
文字数は多バイト文字も1と数えます。空白は含みますが改行は含みません。
java -jar hiNote.jar wc ファイル名...
キー | 値 | 説明 |
ファイル名... |
行数,単語数を数える対象ファイル群 ワイルドカードが指定できます。 フォルダを含むこともできますが、フォルダ名にはワイルドカードは使えません、 |
|
-encoding | 文字コード |
デフォルトはutf-8です。 システム標準を用いるには"-"を指定します |
-align | 長さ |
ファイル名部分の長さ調整。リスト上指定長になるように.が付加されます。 デフォルトは31です。 |
conv 簡易のテキスト変換
簡易のテキスト変換コマンドです。
対象文字列は単純文字列または正規表現で指定できます。
文字コード系の変換だけ用いることもできます。
文字コードは標準入出力のデフォルトはシステム準拠でファイルのデフォルトはUTF-8です。
Windowsのtypeコマンドの代わりに用いてUTF-8ファイルを表示させるといった事も可能です。
java -jar hiNote.jar conv [-with パターンタファイル] | [-text|-regex 対象文字列 -replace 置き換え文字列] | [-toBase64 (-in必須)] | [-fromBase64 (-out必須)] | [-json [-indent] (-in,-ouy必須)] | [-asPathAndLine 対象文字列] [-asFileAndLine 対象文字列] [-import ファイルインポートkeyword] [-in 入力ファイル] [-out 出力ファイル|-] | [-inout 置き換えファイル] [-encoding 文字コード] [-inEncoding 文字コード] [-outEncoding 出力文字コード] [-CRLF|-CR|-LF] [-sort] [-p] [-noFlush] [-unixEpoch 挟み文字指定]
キー | 値 | 説明 |
-with | パターンファイル |
hiRegex.replaceAll(String,hiProperty) を用いた
変換を行います。複数の置き換えを指定できます。 この指定があると-text,-regex,-replaceは無効となります。 |
-text | 対象文字列 |
置き換えを行う対象文字列を指定します。 正規表現ではありません。 -regexと同時指定はできません。 -regex,-textのどちらも省略された場合は、ファイル複製 となります。このとき、-encodingと-outEncodingを 指定してあれば文字コード変換が行われます |
-regex | 対象文字列正規表現 |
置き換えを行う対象文字列正規表現で指定します。 -textと同時指定はできません。 -regex,-textのどちらも省略された場合は、ファイル複製 となります。このとき、-encodingと-outEncodingを 指定してあれば文字コード変換が行われます。 バッチファイルで起動する場合特殊文字\は\\で表す必要があります。 通常の文字としての\は\\\\となります。 |
-replace | 置き換え文字列 | この文字列に置き換えます。 |
-toBase64 | -inで指定されたバイナリファイルをbase64文字列に置き換えます。 | |
-fromBase64 | base64文字列をバイナリに変換し-outで指定されたファイルに出力します。 | |
-json | [-indent] |
コメント等を許す拡張JSONを厳密なJSONに変換します。 -indentを指定するとインデント付きとなります。 |
-asPathAndLine | 変換対象文字列 |
変換対象文字列をソースファイルのパス名と行番号に置き換えます。 -inの指定が必須です。 |
-asFileAndLine | 変換対象文字列 |
変換対象文字列をソースファイルのファイル名と行番号に置き換えます。 -inの指定が必須です。 |
-in | 入力ファイル名 |
入力ファイルの名前を指定します。省略時は標準入力から
読まれます。 -inoutとの同時指定はできません。 |
-out | 出力ファイル名|- |
出力ファイルの名前を指定します。省略時は標準出力となります。 -inoutとの同時指定はできません。 ファイル名の代わりに-を指定すると,-inで指定したファイルの最後の拡張子を取り外したものが採用されます。 -in test.js.src -out - は -in test.js.src -out test.js と同じ |
-inout(提供停止中) | 置き換えファイル |
指定ファイル内容を一旦読み込んだ上で、変換を加え、書き戻します。 -in,-outと同時指定はできません。 |
-encoding | 文字コード |
入出力の文字コードを指定します。 システム標準を用いるには"-"を指定します。 ファイル読み込み時のデフォルトはutf-8です。標準入力時のデフォルトはシステム標準となります。 |
-inEncoding | 文字コード |
入力文字コードを指定します。 システム標準を用いるには"-"を指定します。 ファイル読み込み時のデフォルトはutf-8です。標準入力時のデフォルトはシステム標準となります。 |
-outEncoding | 文字コード |
出力文字コードを指定します。 システム標準を用いるには"-"を指定します。 ファイル読み込み時のデフォルトはutf-8です。標準入力時のデフォルトはシステム標準となります。 |
-CRLF | 改行をCR/LF(Win)にします。 | |
-CR | 改行をCR(Mac)にします。 | |
-LF |
改行をLF(Unix)にします。 デフォルトです。 |
|
-sort | 行のソートを行います。 | |
-verbose | 進行状況をSystem.errにUTF-8で表示します。 | |
-json |
拡張jsonを標準json形式に変換します。 -indentを指定するとインデント付きで出力されます。 |
|
-indent | json出力をインデント付きにします。 | |
-unixEpoch | 挟み文字指定 |
12から始まる10桁または13の数値ならびをunixEpochと解釈し時刻文字列に変換します。 挟み文字指定として''を指定すると単純に数値が置き換わります。 '[]'と書くと'['と']'で挟まれます。 'GT_LT'と書くと'<'と'>'で挟まれます。 |
-noFlush | 1行毎のflushを行わない。 |
ur UDP受信/表示機
UDP受信/表示機
UDPポートに送られてくる単純な文字列を表示します。
文字コードはUTF-8固定です。
java -jar hiNote.jar ur [-port port-number] 待ち受けポート番号を指定する デフォルト:4649(よろしく) [-quitcode hex-code] 終了コード(このコードを受け取ると終了する) デフォルト:1バイト 00 [-o|-a file] 出力ファイル (-aは追加) デフォルト:標準出力 [-stdout] -outと共に使うとファイルと標準出力に同時出力 [-stderr] -outと共に使うとファイルと標準エラーに同時出力 [-no_ts] 受信時のタイムスタンプを表示しない [-no_src] 送信元のアドレスを表示しない [-dt] タイムスタンプに日付を付ける [-fmt format] タイムスタンプのフォーマットを指定する 例) -fmt yyyy/MM/dd-HH:mm:ss デフォルト HH:mm:ss.SSS [-hex] 受信データを16進数で表示 [-text] 文字列で表示,-hexと共に指定すると文字列と16進で表示 [-buf_size size] パケット受信バッファサイズ デフォルト:4096 [-buf_num num] パケット受信バッファ数(表示が間に合わない場合でも この数までは受信できる) デフォルト:4 [-echo] 送信元へデータをそのままエコーする [-no_keyin] キー制御しない コロン(:)に続く2文字入力で制御 :qu-終了 :co-設定表示 :ec-echo.on/off :ts-タイムスタンプ表示on/off :ad-送信元表示on/off :tx-テキスト表示on/off :hx-16進表示on/off [-verbose] 詳細情報を標準エラーに表示
キー | 値 | 説明 |
-port | ポート番号 |
待ち受けるUDPポート番号 デフォルトは4649(宜しく)です。 |
-quitcode | 終了コード(16進数) |
このコードのパケットを受け取ると終了します。 デフォルトは 0000 です。 |
-o|-a | 出力ファイル |
出力ファイルを指定します。-aを指定すると追加モードでオープンします。 出力ファイルも後述の-stdout,-stderrも指定されない場合は標準出力に出力します。 |
-stdout |
標準出力に出力します。 -o|-aと一緒に指定すると、ファイルと標準出力の両方に出力します。 |
|
-stderr |
標準エラーに出力します。 -o|-aと一緒に指定すると、ファイルと標準エラーの両方に出力します。 |
|
-no_ts |
タイムスタンプを表示しません。 起動後":ts"コマンドによりタイムスタンプ表示のon/offが出来ます。 |
|
-no_src |
送信元のアドレスを表示しません。 起動後":ad"コマンドにより送信元アドレス表示のon/offが出来ます。 |
|
-dt | タイムスタンプに日付を付加します。yyyy/MM/dd-HH:mm:ss形式となります。 | |
-fmt | タイムスタンプのフォーマット |
タイムスタンプのフォーマットを指定します。
記述法はhiTime.currentTime(String) を参照してください。
|
-hex |
受信データを16進数で表示します。-textを指定しない場合、通常の文字列は表示されません。 起動後":hx"コマンドで16進数表示のon/offを切り替えることができます。 |
|
-text |
-hexと共に指定すると、通常の文字列と16進数の両方が表示されます。 起動後":tx"コマンドで文字列表示のon/offを切り替えることができます。 |
|
-buf_size | サイズ | UDPパケット受信用バッファサイズを指定します。デフォルトは4096です。 |
-buf_num | 個数 |
UDPパケット受信用バッファ数を指定します。デフォルトは4です。 表示が間に合わない場合でも、この数までは受信できます。 |
-echo |
受信したデータをそのまま送信元に送り返します。 起動後":ec"コマンドでon/offを切り替える事ができます。 |
|
-no_keyin | 起動後の端末からのコマンド入力を禁止します。 | |
-verbose | 動作状況を表示します。 |
キー入力による幾つかのコマンドを受け付けます。
コマンドはコロン(:)に続く2文字となっています。
改行を打つとipアドレスとポート番号が表示されます。
:qu-終了 終了します。終了はコマンドの他、起動引数-quitcodeで指定する コードを受信することでも実施できます。 :co-設定表示 ホストaddress、ポート、終了コード、出力ファイル名を表示します。 :ec-echo.on/off エコーのon/offを切り替えます。 :ts-タイムスタンプ表示on/off タイムスタンプ表示をon/offします :ad-送信元表示on/off 送信元のアドレス表示をon/offします :tx-テキスト表示on/off 受信データのテキスト解釈表示をon/offします。 :hx-16進表示on/off 受信データの16進数表示をo/offします。
us UDPテキスト送信機
UDPテキスト送信機
標準入力からテキストを受けUDPで送信します。
文字コードはUTF-8固定です。
java -jar hiNote.jar ur [-host host] ホスト(デフォルトlocalhost) [-port port] ポート番号(デフォルト4649) [-my_port port] 自分のポート番号(デフォルトは自動採番) [-nl] 改行を送信する [-i file] ファイルから入力する [-o|-a file] ファイルへ出力 -aは追加 [-no_prompt] 入力待ちプロンプトを出さない [-ans] 応答を受信する [-buf_size size] 応答受信用バッファサイズ(デフォルト4096) [-ans_hex] 応答を16進数で表示 [-verbose] 詳細情報を出す [-ms_wait num] M-SERACHの応答待ち受け時間 [-M_SEARCH addr] M-SEARCHのマルチキャストアドレス (デフォルト239.255.255.250) [-M_SEARCH_port num] M-SEARCHのポート(デフォルト1900) [-M_SEARCH_st name] サービス名(デフォルトupnp:rootdevice) 入力行形式 1行1パケット 先頭文字#;:!は制御文字,2個でエスケープ #16進数 バイナリ送信 ;コメント 無処理 !文字列 改行のモードの逆で改行を取り扱う :qu 終了 :tx 応答を文字列表示 :hx 応答を16進表示 :nl 改行モード切替 :sl ミリ秒 スリープ :ms サービス M-SEARCHを出す その他 文字列
キー | 値 | 説明 |
-quitcode | ホスト | 送信先ホストを指定します |
-port | ポート番号 |
送信先UDPポート番号 デフォルトは4649(宜しく)です。 |
my_port | ポート番号 |
自分のポート番号を指定します。 デフォルトは自動採番です。 |
-nl | 改行も送信します | |
-i | ファイル名 | ファイルから読み込んで送信します。 |
-o|\a | ファイル名 |
出力ファイルを指定します。 -aは追加となります。 |
-no_prompt | 入力待ちのプロンプトを出しません | |
-ans | 応答を受信し表示します。 | |
-buf_size | バッファサイズ | 受信用バッファサイズを指定します。デフォルトは4096です。 |
-ans_hex | 応答を16進表示します。 | |
-verbose | 詳細情報を出します。 | |
-ms_wait | 応答待ちミリ秒 | M-SERACHの応答待ち受け時間 |
-M_SEARCH | アドレス | M_SEARCH送信先アドレス。デフォルトは239.255.255.250 |
-M_SEARCH_port | ポート番号 | M_SEARCH送信先ポート。デフォルトは1900 |
-M_SEARCH_st | サービス名 | サービス名。デフォルトはupnp:rootdevice |
genDataClass 指定ファイル内容データを持つクラス生成
ファイルに書かれた文字列をそのままデータとして持つクラスを生成します。
ファイルをリソース上に置く代わりに、クラスにしてしまいたい場合に使用
します。
次の様な文字列を持つファイルを入力とすると
a="xyz" b=\n次の様なクラスが生成されます。
public class data { public final static String val= "a=\"xyz\"\n" +"b=\\n\n" ; }
javascriptの文字列変数または文字列配列変数を生成することもできます。 (-classでjs-stringまたはjs-array指定)
var val= 'a="xyz"\n' +'b=\\n'; あるいは var val=[ 'a="xyz"' ,'b=\\n'];
バイナリファイルのダンプをクラス形式か単純ダンプ形式で得ることも 出来ます。
// バイナリ -encode hex 指定の場合 public class data { public final static byte[] val={ (byte)0x01,(byte)0xe7,(byte)0x2e,(byte)0x33 ,(byte)0x8f,(byte)0x37 }; // ダンプ形式 -dump 0000: 01e7 2e33 8f37 056f ee20 c0c1 f179 bb20 0010: 876f ac06 0a0e }
クラス名はコマンド引数で指定します。変数valは固定です。
起動形式:java -jar hiNote.jar genDataClass [-in 入力ファイル] [-out 出力ファイル] [-append] [-encoding 文字コード] [-outEncoding 出力文字コード] [-class クラス名] [-package パッケージ名] [-variable 変数名] [-dump] [-array] [-u]
キー | 値 | 説明 |
-in | 入力ファイル名 | 入力ファイルの名前を指定します。省略時は標準入力から 読まれます。 |
-out | 出力ファイル名 | 出力ファイルの名前を指定します。省略時は標準出力となります。 |
-append | -outで指定されたファイルに追加出力します。 | |
-encoding | 文字コード |
ファイルの文字コードを指定します。 ファイル読み込み時のデフォルトはutf-8です。標準入力時の デフォルトはシステム標準となります。 混乱を避けるため、必ず指定することを推奨します。 hexを指定するとバイナリとして読み込みbyte配列となります。 -dump指定の場合無効です。 |
-outEncoding | 文字コード |
ファイルの文字コードを指定します。 この指定がなく-encodingが指定されている場合-encoding に従います。 -encodingが指定されていない場合、ファイル出力 であればutf-8、標準出力であればシステム標準となります。 混乱を避けるため、必ず指定することを推奨します。 -dump指定の場合無効です。 |
-class | クラス名 |
生成するクラス名を指定します。省略時はdataとなります。 クラス名として-jsまたは-javascriptを指定するとJavaの クラスの代わりに javascriptの文字列変数を生成します。 入力フォーマットがhexの場合-js/-javascriptは無効です。 -dump指定の場合無効です。 |
-package | パッケージ名 |
省略時は出力されません。 javascript出力の場合無効です。 -dump指定の場合無効です。 |
-variable | 変数名 | 変数名を指定します。無指定時はval(varではありません)です。 |
-dump | 16進ダンプします。 | |
-array |
変数を1行1要素の文字列配列として生成します。
各文字列には改行コードは入りません。 -dump指定の場合無効です。 |
dump 16進ダンプ
次のような形式で16進ダンプを得ます。
0000: 01e7 2e33 8f37 056f ee20 c0c1 f179 bb20 0010: 876f ac06 0a0e
genDataClass -dumpと同じです。
起動形式:java -jar hiNote.jar dump [-in 入力ファイル] [-out 出力ファイル]
キー | 値 | 説明 |
-in | 入力ファイル名 | 入力ファイルの名前を指定します。省略時は標準入力から 読まれます。 |
-out | 出力ファイル名 | 出力ファイルの名前を指定します。省略時は標準出力となります。 |
prop hiPropertyのバイナリファイルを作る
hiPropertyファイルのバイナリ形式を作成します。
バイナリの読み込みはテキストからの読み込みに比べ、若干ですが
高速となる可能性があります。
バイナリ形式のファイルの読み込みにはObjectInputStreamを用います。
ObjectInputStream ois=hiFile.openObjectFileR("prop.dat"); hiProperty prop=(hiProperty)ois.readObject(); ois.close();起動形式:
java -jar hiNote.jar prop [-in 入力ファイル] [-out 出力ファイル]
キー | 値 | 説明 |
-in | 入力ファイル名 | hiPropertyファイルを指定します。省略時は標準入力から 読まれます。 |
-out | 出力ファイル名 | 出力ファイルの名前を指定します。省略時はprop.datとなります。 |
htmlCheck HTMLの簡易検証(<チェック)
HTMLの簡易検証を行います。
現時点では<pre>...</pre>間にある"<"記号を
検出しメッセージを出す機能のみ用意されています。
-- 記述testDir/test1.htm 5 <pre> 6 for(int i=0;i<x.length;++i){...} 7 ArrayList<String> ss=new ArrayList<String>(); 8 </pre> -- チェック出力 testDir/test1.htm:line 6 "<" in " for(int i=0;i<xlength;++i){...}" testDir/test1.htm:line 7 "<" in " ArrayList<String ss= new ArrayList<String>();"
検出するとファイル名と行番号、検出した行(途中から)が表示
されます。
コマンドの終了statusは検出した個数となります。バッチ処理での
検証に用いることができます。
<a>などを許す指定-allowもあります。デフォルトでは
<span>,<font>,<b>,<a>,<dt>,<dl>,<img>,<code>
が許されます。
java -jar hiNote.jar htmlCheck -lt_in_pre [-encoding 文字セット] [-allow タグ並び] [-out 結果メッセージ出力ファイル] [-append] [-no_sub_dir] [-suffix 添え字リスト] {ファイル|ディレクトリ}
キー | 値 | 説明 |
-lt_in_pre | <pre>...</pre>間にある<をチェックします | |
-encoding | 文字コード |
ファイルの文字コードを指定します。 ファイル読み込み時のデフォルトはutf-8です。 -outで出力ファイルを指定してある場合、そのファイルの 文字コードもこの指定が有効になります。 |
-allow | タグリスト |
許可するタグリストを指定します。 タグリストはタグをカンマでつなぎます。 大文字・小文字の違いは無視されます。 デフォルトでは -allow span,font,b,a,dt,img,dl,code が指定されたものとなります。 |
-out | 出力ファイル名 | 出力ファイルの名前を指定します。指定ファイルと標準出力に 同時に出力されます。省略時は標準出力にのみ出力されます。 |
-append | -outで指定されたファイルに追加出力します。 | |
-no_sub_dir | 下位ディレクトリのファイルを対象としないことを指定します。 | |
-suffix | 添え字リスト |
ディレクトリ指定の時にチェックするファイルの添え字
を指定します。ファイル名を直接指定する場合は
この添え字はチェックされません。 複数指定する場合はカンマでつなぎます。 大文字・小文字は無視されます。 デフォルトでは -suffix htm,html となります。 |
ファイル名|ディレクトリ名 | チェックするファイルまたはディレクトリを 指定します。複数指定ができます。 ファイルとディレクトリを混在させて指定 することも許されます。 |
public static void main(String[] args_)
args_
- 第一引数がコマンド名、第二引数以降がパラメタとなります