[前の記事]« makecabが失敗してしまう
[次の記事]ファイルの更新日付の取得について »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「FIND,FINDSTR,SORT…テキストファイル内文字列の操作」索引へ

SORTの対象桁位置を限定したい

1303.
sortコマンドで、任意の桁数でソートする方法 (csvファイル)
2006年07月25日(火) 20時55分
りんご
●DOS/Windowsのバージョン↓
 Windows XP


こんばんは、はじめまして。
sortコマンドについて、質問があります。
よろしくお願いいたします。

【質問】
 sortコマンドで、任意の桁数でソートする方法
 (csvファイル)


 以下のようにソートしたいのですが、うまくいきません。

【コマンド】

1. C:\>sort /+7 test1.csv /o test2.csv

2. C:\>sort /+2 /rec 1 test2.csv /o test3.csv

【やりたいこと】

[test1.csv] [test2.csv] [test3.csv]
  11,23,8     11,44,4     11,44,4
  11,44,4     11,23,8     11,23,8
  11,31,9     11,31,9     11,31,9

【実際の結果】

[test1.csv] [test2.csv] [test3.csv]
  11,23,8     11,44,4     11,23,8
  11,44,4     11,23,8     11,31,9
  11,31,9     11,31,9     11,44,4

1.で、test1.csvの7桁目からソートしたものをtest2.csvとし、
2.で、test2.csvの2桁目から1文字分ソートしたものを
test3.csvとしたいのですが、上のような結果になってしまいます。
私は2.で2桁目だけソートと指定したつもりなのですが、
2桁目が全て同じ値のためか、3桁目でソートされているようです。
オプションのrecも、使い方を調べたのですがよく分からず、
使い方が間違っているのかもしれません。

まとめますと、
・任意の桁数でソートしたい。
・ソート対象が同じ値だった場合は、次の値を見ずに
 そのままにしておきたい。
ということです。

分かりにくい説明ですみません。
ご教授よろしくお願いいたします。
1309.
Re:sortコマンドで、任意の桁数でソートする方法 (csvファイル)
2006年07月26日(水) 14時58分
otn
>私は2.で2桁目だけソートと指定したつもりなのですが、
>2桁目が全て同じ値のためか、3桁目でソートされているようです。
>オプションのrecも、使い方を調べたのですがよく分からず、
>使い方が間違っているのかもしれません。
>
>まとめますと、
>・任意の桁数でソートしたい。
>・ソート対象が同じ値だった場合は、次の値を見ずに
> そのままにしておきたい。
>ということです。

/REC は、レコードの最大長を指定するオプションです。
4096がデフォルトなので、それ以上の長いレコードがある場合に指定が必要です。/REC 8000 等。

標準のSORTでは、比較開始位置は指定できますが、終了位置は指定できません。gnuのsort等を使う必要があります。
また、一般にソートプログラムではキーの値が同じレコードの出力順序は保証されません。プログラムによってはオプションで同一キーレコードの順序の保存を指定できる場合があります。gnu sort だと -s オプション。
 
 


カテゴリー「FIND,FINDSTR,SORT…テキストファイル内文字列の操作」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2006年07月25日 12:12に投稿されたエントリーのページです。

ひとつ前の投稿は「makecabが失敗してしまう」です。

次の投稿は「ファイルの更新日付の取得について」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート