きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

z/OSのUSS上でASCIIファイルを開く

viasciiをご存知だろうか?

USS上で使えるオモチャだ。
とくにサポートはない。

しかし、内容的にviasciiにサポートはいらないだろう。

viasciiはコマンドのように思えるが、
ただのシェルでしかない。
SMP/Eなんて使わない。
FTPでUPして、パーミッション変えて、PATHに入れて、叩くだけ。

こいつは引数で渡されたファイルを
iconvでIBM-1047(EBCDIC)にして、
それをviで開いている。

ISO8859-1とIBM-1047の変換であるため
マルチバイトには対応してない。


ちなみにマルチバイトを含むシェルをUSSで動かすと高い確率でシンタックスエラーになる。(FTPアスキー変換して文字化けてる状態な)


.shとか、
.propertiesとか、
.xmlとか、
マルチバイトさえ含まなければ、viasciiを使うことで、その都度ローカルに持ってきて中身を確認する必要はなくなる。


日本語でコメント書くな、と最近よく口に出してるなぁ。


マルチバイトで動かないシェルを動かそうと、コメントを削除して動かし出すと、今度はどんどん何をやってるか分からなくなる。
英語で書けってば。


viasciiと言えど、検索性のなさを補えない。
USS上のgrepでasciiファイルから文字列を拾うのは無理だろう。
iconvしてからgrepしないといけない。


他に、BPXPRMxxのAUTOCVTと、
chtag -tc ccsidも見逃せない。
Cなんかは、_BPXK_AUTOCVT環境変数が使える。
んー、名前からしてシェルでも使えるやもしれん。
仮にこれを使った場合、viasciiは無くても良いことになるか?
それでもタグの付け忘れは多発するだろうから価値は残るだろうな。


jarとかはバイナリモードで送って、
シェルだけはアスキーモードで送る。
そんなの煩わしい。

zipやtarに固めて、送ってから解凍、
find . -name *.sh | xargs chtag -tc 1208
たぶんこんなイメージだろうか。

ちょっとgrepの話に戻る。
タグが効くなら、asciiファイルのgrepも可能性はあるかもしれん。


暇な時に実験しよう。。。