内部十進数(Decimal型とかS9 comp-3とか)を含むデータって普通にNULL(0x00)が入ってくるので、headすると行末をちゃんと判定できなくておかしなことになりますよね。ですが、固定長ファイルの場合は dd(1) を使うと簡単に、先頭から任意の行数だけ抜き出すことが可能です。

やり方

1
2
dd bs=レコード長 count=抜き出したい行数 skip=読み飛ばしたい行数 if=入力ファイル of=出力ファイル

オプションについて

  • bs…入出力の単位。ここに指定したバイト数ずつ処理されます。ファイルのレコード長を指定しましょう。改行コードを含む場合は+1バイトしましょう。
  • count…bsで指定したバイト数のデータを何回処理するか指定します。つまりは抜き出したい行数を指定するのです。
  • skip…bsで指定したバイト数を、ここで指定した回数読み飛ばし(READ-SKIP)します。
  • if…入力ファイルを指定します。指定しないと標準入力を使います。
  • of…出力ファイルを指定します。指定しないと標準出力を使います。