cat、more、head、tailコマンドを使って、テキストファイルだけでなくLinuxファイルの中身を見る方法。
Linuxには、cat、more、head、tailなど、ファイルの中身を見るためのコマンドがたくさん用意されていますが、それはほんの始まりにすぎません。
一方では、最も明白なコマンドでさえ、多くのユーザーが気にしないような多くのオプションがあります。一方では、ありふれたコマンドの中にもユニークな機能を持つものがあります。この記事では、ファイルの内容を表示するコマンドと、これらの表示をよりニーズに合うようにカスタマイズする方法について説明します。
cat
catコマンドは、テキストファイルの全内容をターミナルウィンドウに送信して表示します。実際、catの後に何千行もの行を含むファイル名を入力すると、それらの行がウィンドウ内をスクロールする速度が速くなり、最後の画面以外のテキストを見ることができなくなります。catコマンドはLinuxユーザーにはお馴染みですが、この基本的なコマンドでも、出力される行に番号を付けるなど、多くの便利なオプションが用意されています。さらに一歩進んで、行番号だけでなく、行番号の付け方も選択できます。
このように各行に番号を付けます:
$ cat -n msg1 Hello --3 I hope you are having a wonderful day!6 That's it for ... now8 bye!
内容のある行だけに番号を振ることもできます。このコマンドでは、空白だけを含む行は「空」とはみなされず、番号が振られることに注意してください。
$ cat -b msg1 Hello --2 I hope you are having a wonderful day!3 That's it for ... now4 bye!
catコマンドは-sオプションで空行の繰り返しを無視できますが、空行を完全に無視するには別のコマンドを追加する必要があります。
$ cat -s msgHello --I hope you are having a wonderful day!That's it for ... now
すべての空行を無視するには、catの出力を次のように grepコマンドにパイプするだけです。 ドットは任意の文字を含むテキストにマッチするため、空行でない行はすべて表示され、行末のキャリッジリターン・ラインフィードがマッチングを行います。
$ cat msg | grep .Hello --I hope you are having a wonderful day!That's it for ... now
Eオプションは、各行の末尾に$文字を追加することで、行末に余分なスペースがあるかどうかを視覚的に示すものです。
$ cat -E msgHello --$I hope you are having a wonderful day! $That's it for ... now$
Aでは、各行の末尾に$文字が表示され、タブは空白ではなく^Iとして表示されます。
$ cat -A msgHello --$I hope you are having a wonderful day! $Thatのためのものだ。...^Inow$
headとtailを使ってファイルの一部を表示します。
head と tail コマンドはファイルの先頭または末尾を表示します。 tail は head と同じ働きをしますが、head の代わりにファイルの最後を表示します。
$ head -3 msgHello --I hope you are having a wonderful day!$ tail -3 msg
headコマンドとtailコマンドを組み合わせて、ファイルの途中のテキストを表示することもできます。必要なのは、始点と表示したい行数を選択するだけです。この例では、catの助けを借りて、コマンドはファイルの2番目の100行を表示し、それらに番号を付けます。
$ cat -b mybigfile | head -200 | tail -001101 Invoice #a sent to vendor
テキストの画面を表示するには、more または less を使用します。
moreコマンドは、一度に一画面分のコンテンツを表示するのに適したコマンドです。また、lessコマンドは、キーボードの上下の矢印を使ってファイル内を上下に移動する機能を追加するので、コンテンツ内を移動してからファイル内に戻ることができます。
odを使用してテキストを表示する2つの方法
od コマンドを使うと、ファイルを通常のテキストと一連の ASCII 値として表示することができます。次の例でわかるように、番号のついた行はASCIIの数値を表示し、それ以外の行はテキストと印字不可能な文字を表示します。
$ od -bc msgH e l l o - - I h o p ey o u a r e h a v i n ga w o n d e r f u l d a y !T h a t ' s i t f o r. . . \t n o w b y e !s .
改行は「◎n」、タブは「◎t」で表示されます。
odコマンドの特に便利な使い方の一つは、テキスト以外のファイルからファイルタイプを特定する情報を探すことです。ここでは、JFIFタグを見てください。これは、ファイルタイプを報告するfileなどのコマンドにjpgファイルとしてマークさせるものです。このほかにも便利な情報がたくさんあるので、特にこれらのファイルの形式に興味がある方は、ぜひ参考にしてください。
次のコマンドで、jpgファイルの先頭を表示します。
$ od -bc arrow.jpg | head -12J F I F \0 \0 100\0 C \0 300\b 600\t \b \t \b \t \t \f 017 \f\v 016 \v \t \t 021 \fC
fileコマンドにこのイメージに関する情報を求めると、次のようになります:
$ file arrow.jpgarrow.png: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, , components 3
jp2a を使ってファイルをテキストベースのイメージとして扱う方法
コマンドラインでしか作業できず、特定のイメージに何が含まれているかを理解したい場合は、jp2aのようなツールを使って文字レンダリングを行うことができます。このフォーマットでイメージがどの程度認識されるかはファイルによって異なります。表示されるイメージのバージョンは「低解像度」テストなので、あまり期待しないでください!これは非常に低解像度の皇帝ペンギンです。
$ jp2a Emperor_Penguin.jpgMMMMMMMMWOdkNMMMMMMMMMMMMMMMMMMMMMMXK0kc.... ,OKMMMMMMMMMMMMMMMMMMNK0Ol... :Xx'dNMMMMMMMMMMMMMMMMMMMMd;lx00Oo. ..xMMMMMMMMMMMMMMMMMMK.OXMMMMMN,...lMMMMMMMMMMMMMMMMMx'KXNNMMMMK....0MMMMMMMMMMMMMMMMx:kkKNWWMMMl.. 'NMMMMMMMMMMMMMMMddx0NNNWMMMK'...;NMMMMMMMMMMMMMMck0NNWWWWWMMd ..lMMMMMMMMMMMMMM.d0KXNWWWWMMo ...WMMMMMMMMMMMMM.xOXNNWNMMMW. ....KMMMMMMMMMMMMM'kKNKWXWMMMK ..'.0MMMMMMMMMMMMMxckXNNNNMMMX .:..XMMMMMMMMMMMMMW;xKNWWWMMMM. .;. NMMMMMMMMMMMMMMok0NNWNWMMMx .l..MMMMMMMMMMMMMMMkxOKXWXNMMMMl.:'dMMMMMMMMMMMMMMM0dKOdKXXNMMMMNx,WMMMMMMMMMMMMMMMWoKxldXKNNMMMMM;MMMMMMMMMMMMMMMMMxxxxdNWNXNMMMM;MMMMMMMMMMMMMMMMMxOcoo0XOOOOWMW,kMMMMMMMMMMMMMMM0xK;.cO0dNX:0XXd;NMMMMMMMMMMNkdd:,'ldXXO0xl;x0kx:;lKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
まとめ
Linuxには、ファイルの内容をさまざまな方法で表示できるコマンドがたくさんあります。これらのオプションのいくつかは、ファイルの内容を扱う必要があるときに非常に便利です。その他はただ......面白いだけです。
を経由して




