このフロントエンドからは、複数のファイルを1つにまとめて出力するcatプログラムを実行できます。catプログラムのcatはcatenate(連結する)の略で、猫とは関係ありませんが、catと言えば猫を想像するのが人情というものでしょう。なお、このフロントエンドの「実行」ボタンは、何らかの入力が指定されたときに有効になります。
PCK版のcat.exeは、cygwinツール版に-c、-C、-Lオプション(及び文字コード関連のオプション)を追加したものになっています。
通常のウィンドウ
管のメインダイアログから起動したときのウィンドウ
マイコンピュータ、エクスプローラなどのウィンドウからファイルのアイコンをドラッグしてきてこのウィンドウにドロップすれば、そのファイルが入力ファイルとして使われます。
クリップボード このチェックボックスをクリックすると、「入力ファイル」ダイアログボックスで指定された入力を使わず、クリップボードの内容を標準入力にリダイレクトします。
ファイル このボタンをクリックすると、「入力ファイル」ダイアログボックスが表示されます。ファイルの順番を指定したいときや、ワイルドカードを使って複数のファイルをまとめて指定したい場合には、このダイアログボックスを使います。
入力の指定方法の詳細については、「入力の指定」を参照してください。
特別なオプションを指定しなくても、ファイルを結合(catenate)するという本来の処理が実行されます。とはいえ、オプションを指定すれば、単にファイルを結合する以上のことができます。
各行の行頭に行番号を付けるかどうかを指定します。行番号は、指定されたすべてのファイルを1つの大きなファイルとして扱って付けられます。つまり、2つ目のファイルの先頭行には、行番号として1つ目のファイルの末尾行の次の数字が付けられます。
-b 空行(改行のみの行)には行番号を付けません。空行は存在しないのと同じように扱われます。行番号の数字は、空行の分を抜かして計算されますし、空行の行頭には何も付加されません。
1 頭の名前
2 頭には名前がもう一つあったと思うのだが、
3 どうしても思い出せない。
4 胴体から切り離したときには、
5 切断面を全体の名前として、
6 首
7 と呼ぶことがあるが、
8 私がいいたいのは、
9 物になってしまった頭のことではない。
-n 空行も通常の行と同じように扱うことを除けば、-bと同じです。
1 頭の名前
2
3 頭には名前がもう一つあったと思うのだが、
4 どうしても思い出せない。
5 胴体から切り離したときには、
6 切断面を全体の名前として、
7 首
8 と呼ぶことがあるが、
9 私がいいたいのは、
10 物になってしまった頭のことではない。
つけない 行番号を付けません。インストール時の状態では、このオプションが選択されています。
頭の名前
頭には名前がもう一つあったと思うのだが、
どうしても思い出せない。
胴体から切り離したときには、
切断面を全体の名前として、
首
と呼ぶことがあるが、
私がいいたいのは、
物になってしまった頭のことではない。
行番号は6桁分のスペースに右揃えで出力されます。行番号の後ろにはタブ記号が付加されますので、本来の内容は8桁目から始まります。これはcygnus版のcatでも同じです。
-c UNIX版(そしてcygwin版)のcatにはもともとないオプションですが、メールの返事などを書くときに「> 」のような引用を表す記号を付加できれば便利だろうと考えてPCK版cat.exeに追加した機能です。「-c: 付加する」をチェックすると、その下のエディットボックスに文字を入力できるようになります。ウィンドウ最下部のコマンド行からもわかるように、ここに入力した文字は「""」で囲まれてコマンド行に渡されます。ですから、たとえば「> 」と入力しても、後ろのファイル名に出力をリダイレクトするようなことはありません。しかし、「"」文字自体を使おうとするとややこしいことになります。catfeは、行頭文字列のエディットボックスに「"」文字が入力されると、自動的に「\」記号を付加します。「\」を付けた「"」は、本来持っている特別な意味をなくして「"」という文字として扱われるようになります。ところが、Windowsでは、「\」記号から「"の特別な意味を取り去る」という特別な意味を取り去る方法がどうやら用意されていないようなのです。そこで、行頭文字列のエディットボックスに「\」とだけ入力して、「-c "\"」というコマンド行オプションを指定すると、「\」という文字を入力したいのか、「\"」として「"」を特別な意味のない文字として使おうとしているのかがあいまいになってしまいます。UNIXなら「\\」とすることによって「\」文字の意味を消すことができますが、Windowsではそのような仕様にはなっていないようです。また、Windows NT/2000と9x/MEとでは、このあたりの動作が微妙に異なり、9x/Meなら「"」を1つだけ出力することができますが、少なくともWindows 2000ではうまくいきません(偶数個なら出力できます)。所詮おまけの機能だと思ってください。perl(珠: perl参照)などのより高度なプログラムを使えば、「"」を行頭に付けるのは簡単です。「"」文字とは異なり、タブ、改行などの特殊文字は簡単に指定できます。「\t」でタブ、「\r」で復帰、「\n」で改行という意味になります。タブではなく、文字通りに「\t」と入力したい場合には、「\\t」というように「\」を重ねてください。なお、行番号と行頭文字列の両方を指定した場合、行番号、行頭文字列の順番で出力されます。次に示すのは、エディットボックスに「NAGAO>」と入力したときの出力です。
NAGAO> 頭の名前
NAGAO>
NAGAO>頭には名前がもう一つあったと思うのだが、
NAGAO>どうしても思い出せない。
NAGAO>胴体から切り離したときには、
NAGAO>切断面を全体の名前として、
NAGAO>首
NAGAO>と呼ぶことがあるが、
NAGAO>私がいいたいのは、
NAGAO>物になってしまった頭のことではない。
-s 空行が続いているとき、それを1個の空行にまとめます。-b、-nオプションが指定されている場合、行番号は、空行を圧縮したあとの内容に合わせて付けられます。 たとえば、次のようなファイルは、
CAT(1) CAT(1)
名前
cat - ファイルを連結して出力する
次のように出力されます。
CAT(1)
CAT(1)
名前
cat - ファイルを連結して出力する
-T タブ文字の代わりに「^I」と表示します。 たとえば、上記の-bオプション付きの出力に対してさらに-Tをかけると(cat –b sample.txt | cat -T)、次のようになります。
1^I 頭の名前
2^I頭には名前がもう一つあったと思うのだが、
3^Iどうしても思い出せない。
4^I胴体から切り離したときには、
5^I切断面を全体の名前として、
6^I首
7^Iと呼ぶことがあるが、
8^I私がいいたいのは、
9^I物になってしまった頭のことではない。
-E 行末に「$」を付加します。[$]は、改行文字の位置を示します。-Tオプションでは元のタブ文字は取り除かれて出力されますが、-Eオプションでは改行文字と「$」の両方が出力されます。 上の例と同様に、-bオプション付の出力に対してさらに-Eをかけると(cat –b sample.txt | cat -E)、次のようになります。
1 頭の名前$
$
2 頭には名前がもう一つあったと思うのだが、$
3 どうしても思い出せない。$
4 胴体から切り離したときには、$
5 切断面を全体の名前として、$
6 首$
7 と呼ぶことがあるが、$
8 私がいいたいのは、$
9 物になってしまった頭のことではない。$
-v 改行、タブ以外のASCIIコード00hから1Fhまでの文字を「^X」(Xは実際の文字コード+40h)という形式で、ASCIIコード80hから9Fhまでの文字を「M-^X」(Xは実際の文字コード-40h)という形式で、ASCIIコードA0hからFFhまでの文字を「M-X」(Xは実際の文字コード-80h)という形式で表示します。このオプションを付けると、漢字は一切表示されません。cygnus版は改行の位置に「^M」を必ず付けますが、私たちのバージョンでは付けません。上の例と同様に、-bオプション付の出力に対してさらに-vをかけると(cat –b sample.txt | cat -v)、次のようになります。
1 M-^A@M-^SM-*M-^BM-LM-^VM-<M-^QO
2 M-^SM-*M-^BM-IM-^BM-MM-^VM-<M-^QOM-^BM-*M-^BM-`M-^BM-$M-^HM-jM-^BM-BM-^BM-
M-^BM-AM-^BM-=M-^BM-FM-^NvM-^BM-$M-^BM-LM-^BM->M-^BM-*M-^AA
3 M-^BM-GM-^BM-$M-^BM-5M-^BM-DM-^BM-`M-^NvM-^BM-"M-^OoM-^BM-9M-^BM-HM-^BM-"M-^AB
4 M-^SM-7M-^QM-LM-^BM-)M-^BM-gM-^PM-XM-^BM-hM-^WM-#M-^BM-5M-^BM-=M-^BM-FM-^BM-+M-^BM-IM-^BM-MM-^AA
5 M-^PM-XM-^RfM-^VM-JM-^BM-pM-^QSM-^QM-LM-^BM-LM-^VM-<M-^QOM-^BM-FM-^BM-5M-^BM-DM-^AA
6 M-^NM-q
7 M-^BM-FM-^LM-DM-^BM-TM-^BM-1M-^BM-FM-^BM-*M-^BM-
M-^BM-iM-^BM-*M-^AA
8 M-^NM-^DM-^BM-*M-^BM-"M-^BM-"M-^BM-=M-^BM-"M-^BM-LM-^BM-MM-^AA
9 M-^UM-(M-^BM-IM-^BM-HM-^BM-AM-^BM-DM-^BM-5M-^BM-\M-^BM-AM-^BM-=M-^SM-*M-^BM-LM-^BM-1M-^BM-FM-^BM-EM-^BM-MM-^BM-HM-^BM-"M-^AB
-C、-LテキストファイルはMacintosh、UNIX、Windowsという小型コンピュータの主要な環境のどれでもほぼ同じように使えますが、たった1つ、改行位置を示すコードだけが異なっています。Macintoshは制御文字のCR(復帰、16進の0x0A)、UNIXは制御文字のLF(改行、16進の0x0D)、WindowsはCR+LFの2字を使います。PCKのcat.exeは、改行文字としてこれらのなかのどれを使うかを指定できます。-CならCR、-LならLF、特に指定しなければ(あるいは、-CLを指定すれば)CR+LFになります。
--help cat.exeのヘルプメッセージが表示されます。
--version cat.exeのバージョン番号が表示されます。
これらのオプションを指定すると、オプショングループボックス内のほかのオプションは指定できなくなります。
通常、出力ファイル名を指定する必要はありません。指定しなければ、出力は一時ファイルに書き込まれ、その一時ファイルが指定されたテキストエディタによってオープンされます。しかし、ファイル名を指定すれば、出力はそのファイルにリダイレクトされ、テキストエディタにもそのファイルが渡されます。また、中央のエディットボックスにファイル名が表示され、その下の「追加」チェックボックスをチェックできるようになります。「追加」チェックオックスをチェックすると、そのファイルの元の内容の末尾に出力を書き足します。出力の指定方法の詳細は、「出力の指定」を参照してください。
出力グループボックスの下の行には、組み立てたコマンド行が表示されます。管(pipeline)の「編集」ボタンで起動したときを除き、コマンド行の左側の四角形をマウスでクリックしてドラッグしていくと、他の猫、管、行(cmdline)にドロップできます。また、「コピー」ボタンを押すと、コマンド行情報がクリップボードにセットされます。クリップボードにコマンド行情報がセットされているときに、マウスの右ボタンをクリックし、コンテキストメニューから「貼り付け」を選択すると、クリップボードのコマンド行情報が反映されます。ドラッグアンドドロップとコピーアンドペーストの詳細は、「ドラッグアンドドロップとコピーアンドペースト」を参照してください。エキスポート、インポートされるときのコマンド行情報の形式については、「コマンド行情報のやり取りの仕組み」を参照してください。さらに、ダイアログボックス上でマウスの右ボタンを押したときに表示されるコンテキストメニューの「.batロード」、「.bat保存」コマンドを使えば、同じ形式のコマンド行情報を.batファイルとして保存し、あとでロードすることができます。このロード、保存機能の詳細は、「.batファイルのロードと保存」を参照してください。
作業ディレクトリを表示しているエディットボックスを直接編集したり、マイコンピュータ、エクスプローラなどからフォルダを1つだけドロップしたりすると、作業ディレクトリを変更できます。「ChDir」ボタンでも、作業ディレクトリを設定できます。作業ディレクトリの設定が必要になるのは、入力ダイアログボックスの「直接指定する」を使うときです。詳しくは、「作業ディレクトリ」を参照してください。
「設定」ボタンを押すと、「設定」ダイアログボックスが表示されます。このダイアログボックスでは、
出力の表示に使うテキストエディタ
エクスプローラなどからファイルやフォルダをドロップしたときの確認メッセージの有無
出力の末尾に実行したコマンド行、実行時間などを付加するかどうか
コマンド行プログラムに渡すファイル名のディレクトリ区切り子を\ではなく/にするかどうか
コマンド行プログラムに渡すファイル名を8.3形式にするかどうか
コマンド行プログラムとしてどれを使うか
を指定できます。詳しくは、「設定ダイアログボックス」を参照してください。
「opt保存」ボタンを押すと、「オプション」グループボックス内の設定が保存されます。詳しくは「オプション保存」を参照してください。