- 締切済み
sort コマンドについて
sortコマンドで nバイト目からmバイト目までをソートさせたいのですが、 どうすればよいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Marionette
- ベストアンサー率56% (42/74)
値がないとは改行のみか開始位置より短いという意味でしょうか 普通に考えると、文字コードで比較しますので値がない場合は前になるでしょうね。 あれこれ考えるよりはサンプルを作ってやってみた方が早いです。 最後尾にしたいとか、リストから除外したい場合は、シェルスクリプトにして除外 してからソートするとか、Perlで組むかすればよいかと思います。
- Marionette
- ベストアンサー率56% (42/74)
field は 先頭が 1、positionは 0です。
補足
ありがとうございます。 例えば、大きさが10バイトのレコードがいくつかある場合、先頭5バイトをキーにソートするとします。 その中に、値がないキーが存在した(ヌルがあった)場合にはキーがヌルのレコードは無視(削除)されてしまうのでしょうか? そのときそのレコードを例えば、最後に置くことはできるのでしょうか?
- Marionette
- ベストアンサー率56% (42/74)
man sortくらいやってください! sort +POS1 -POS2 ( obosolete ) sort -k POS1, POS2 ※POS1,POS2 : field.position ---------------------------- bcde fghi jklm nopq abcd efgh ijkl mnop zabc defg hijk lmno cdef ghij klmn opqr ↓ sort -k 2.2, 2.3 zabc defg hijk lmno abcd efgh ijkl mnop bcde fghi jklm nopq cdef ghij klmn opqr
お礼
ありがとうございます。 私が知りたかったのは、 sort -kfield1.position,field2.position2 のとき position2を含んでソートされるかどうかです。 試してみたところ含まれないようですね。 ((field2.position2-1)までをキーにソートされるということ)
補足
そうですね。実際にやってみます。 >値がないとは改行のみか開始位置より短いという意味でしょうか プログラムでファイルを作る場合の話です。 DBを読み込みファイルに格納します。 DBレコードの中の数バイトにはヌル情報が含まれている可能性があるということです。