勉強会のショートセッションで、OS X のターミナルでファイルをバイナリで開く方法をちらっとお話しました。Illustrator ファイルなどのバージョン確認に便利かも、と思って xxd コマンドを使ってみたのですが、よ〜く考えたらもっと良い方法がありましたよ。エディタで開くよりず〜〜っとラクチンです。
- ターミナルを起動して「cat 」の4文字(4文字目は半角スペース)を入力。
- そのままターミナルのウインドウにファイルをドラッグ&ドロップ。
- [return] キーを押して実行。ウインドウにファイルの中身が表示されていきます。
- 数秒後に [command+ピリオド] で中止。
- [home] キーで先頭を表示させて上から見ていく
こんな感じでどうでしょう? 「cat」はネコさんじゃないですよ〜。連結(concatenate)の意味で、そもそもは複数ファイルを連結して出力するものです。1ファイルでも出力されるので、中身をちょっと確認するのに便利。エディタだと全部読み込んで表示するので遅くてイライラしますが、cat なら途中で中止できるので素早いです。さらに cat はやっぱりネコさんみたいでカワイイので、すぐに覚えられます(笑
追記
慣れてきたら cat のかわりに「strings 」 でやってみてください。読める文字だけ表示してくれるので、こっちの方が快適です。
おぉ! そうでしたか。MacのTerminal はドロップでファイル名をshellに渡せるんですね! いままで [Tab]によるファイル名補完を使ってましたが、それより遥かにお手軽ですね。
ところで、head や tail だと表示する行数やバイト数を指定(デフォルトは10行)できますから、cat でのように、“頃合いをみて[command+ピリオド]で中止”する手間がないのでは? どうでしょ?
これは遼東の豕でしょうけど…
cat、head、tail で何度もファイルの中身を見るときは、clear コマンドで表示バッファを掃除しておくと、[home]キーで先頭に戻るのが楽ですよ。
そして、次のファイルを見るためにコマンドラインへ一気に戻るには[end]キーですよね。
> head や tail だと表示する行数やバイト数を指定
cat も指定できるんですけど、この記事は「CUI になじんでいない方向け」ですので、オプション付きにするとそれだけでやってくれなくなるんですね。「cat 」の4文字だけにとどめておくことがきわめて大事です。
> clear コマンドで表示バッファを掃除しておく
エディタで開くのに比べたらかるく100倍は速いですから、そこまでしなくてもいいかな〜
会社で指導する立場にいますので、相手が混乱や拒絶をしないように「便利な方法をあえて一度に全部教えない」のも重要だと考えてます。
なるほど、教えすぎないのが重要なんですね。
私は一人親方なので、そんな配慮をしたことがなく、勉強になります。
cat ファイル | strings | less
なんてのは、とんでもないことなんですね :-)
申し遅れましたが、Libera Memory をしばらく前までとても便利に使わせていただいてました。その節は、お世話になりました。ありがとうございました。
> cat ファイル | strings | less
> なんてのは、とんでもないことなんですね :-)
それが必要になったら、AppleScript の do shell script などで作って「ここにドラッグして」と言った方が説明しなくてすむのでラクチンです。根が面倒くさがりですから〜
> Libera Memory をしばらく前までとても便利に使わせていただいてました
おっ、今は必要なくなったんですね。よかった! おめでとうございます〜〜
初めて書き込みさせていただきます。
いつも、Libera Memory や como、FileListPrint など使わせていただいております。
古くは、OS9でAFLDeleteも愛用しておりました。
今回のバージョンチェックは、以前まではある種(Jeditなど)のテキストエディタで
直接読み込ませてましたが、非常に助かります。ありがとうございます。
さて最近ですが、Comoの挙動がおかしく感じます。
OSXを10.5にバージョンアップをしてから、
アプリケーションから一旦Finderに切り替えると、キーボードだけが一切反応しません。
ウィンドウに対しては全く反応せず、一度デスクトップをクリックしないと、
全く反応を起こさないようになりました。
どうも、Spacesとの相性が良くない様な気がしますが。
非常に便利なアプリなので、より便利になっていただければ幸いです。
当方の環境ですが、
OSX 10.5
como 1.4.3
CS3 です。
stringsはフィルタ専用だと思ってました。はずかしい〜 :-(
kbinett さん
Como と Spacesとの相性が良くない件ですが、これは解決できません…
お返事もかなり遅れてしまい、スイマセン!