ベストアンサー sortコマンドについて 2005/10/11 16:33 mako-kwnshともうします。 タブで区切られたテキストファイルの 1番目と4番目の項目の昇順にソートしたいのですが可能なのでしょうか? みんなの回答 (3) 専門家の回答 質問者が選んだベストアンサー ベストアンサー gaktank ベストアンサー率65% (23/35) 2005/10/11 22:06 回答No.3 (1)対象ファイルを数行だけ抽出して、そのファイルに対してsortしても同事象ですか? (一瞬でソートできるはずのファイルでやってみてください) (2)sort対象ファイルの1行が長い、改行コードがない、バイナリファイル、といった場合にinsufficient memory エラーが出やすいみたいですが、該当しますか? 質問者 お礼 2005/10/12 10:52 お返事ありがとうございます。 ファイルを調べると文字コードがShift-JIS でした。試しにEUCに変換してやると うまくいきました。Shift-JISでは だめなのでしょうか? とりあえず今は iconv -f shift-jis -t euc sort iconv -f euc -t shift-jis みたいにしてソートしています。 gaktankさん3度をお返事をいただいて 本当にありがとうございました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (2) gaktank ベストアンサー率65% (23/35) 2005/10/11 20:24 回答No.2 > insufficient memory; use -S option to increase allocation > というエラーが発生します。 -S オプションで、sortで使用するスワップメモリを指定してください。 ソート対象ファイルの2~3倍程度あれば大丈夫だと思います。 仮に20MBとするなら、 $ sort -S20m -k1,1 -k4,4 textfile です。 ちなみに、実際に使用できる仮想メモリ量より大きい値を指定すると、膨大な量のスワップが発生してパフォーマンスが悪くなるので、システムの実メモリ量を考慮した上で指定したほうがよいです。 質問者 お礼 2005/10/11 21:37 2度もお返事をいただき誠にありがとう ございます。 下記のコマンドを実行したのですが、 前回と同じようにエラーが出てしまいます。 ソートするファイルが悪いのでしょうか... sort -S25m -n -k1,1 -k5,5 ../data/from/PGCMCMWAKUTAB.TXT > ../data/from/PGCMTOKUBANTAB_WK.TXT 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 gaktank ベストアンサー率65% (23/35) 2005/10/11 18:50 回答No.1 こういうことですか? $ sort -k1,1 -k4,4 textfile 質問者 お礼 2005/10/11 19:05 お返事ありがとうございます。 教えていただいたコマンドを 実行してみたのですが、 insufficient memory; use -S option to increase allocation というエラーが発生します。 メモリ不足のエラーだと思うのですが、 メモリ不足になる原因がわからず 現在悩んでいます。 (ファイルは6MB程度) 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューターOS(技術者向け)Solaris系OS 関連するQ&A sortコマンドについて 33 333 22 33 333 33 33 333 11 33 222 11 33 111 11 44 111 11 44 222 11 11 111 11 11 222 11 上記のファイルを以下のようにソートしたいのですが どのようにすればよいでしょうか? 第一ソートキー 1~2番目の昇順 第二ソートキー 4~6番目の降順 第三ソートキー 8~9番目の昇順 (ちなみにspaceはたまたまspaceで区切り文字ではありません) 11 222 11 11 111 11 33 333 11 33 333 22 33 333 33 33 222 11 33 111 11 44 222 11 44 111 11 以下の試して見ましたがうまくいきませんでした。 sort -k 1.1,1.2 -r -k 1.4,1.6 -k 1.8,1.9 test.txt 宜しくお願い致します。 Sortコマンド以外で行をソートする方法 Sortコマンドを使ってテキストファイル内の行をソートしていたのですが、扱うテキストファイルの内容によってエラーが出てしまい、エラーメッセージをWEBで検索して書かれていた対策をしたのですがうまく行きませんでした。 ですので、Sort以外のコマンドで、テキストファイル内の行を昇順と降順でソートしたいと考えているのですが、何か方法はないでしょうか。 Windowsのコマンドプロンプトで使用出来るものであれば、AWKでもPerlでもその他のコマンドでも構いませんし、スクリプトファイルを読み込めるコマンドでしたらスクリプトでの書き方でも結構ですので、ご存知の方がおられましたら教えて頂けないでしょうか。 sortコマンドについて Unixのソートコマンドを用いて複数ソートキーを指定し、 ソートキーに応じて昇順降順を指定することはできるでしょうか? 宜しくお願い致します。 第一ソートキー 昇順 第二ソートキー 降順 第三ソートキー 昇順 以下を試して見ましたがうまくいきませんでした。 sort -k 1.1,1.2 -r -k 1.4,1.6 -k 1.8,1.9 test.txt ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム VBA ファイルを読み込む際のSortメソッドの使い方 tabで区切られたテキストファイルを読み込み、日時の列を昇順で並び替える処理をしようとしました。 sortメソッドを使って並び変えようとしましたが、上手くいきません。。 既に開いているエクセル上では簡単なsortメソッドを使って並び替えはできました。↓のようなマクロ記録を使って。 Range("A1:A11").Select Range("A1:C11").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin,DataOption1:=xlSortNormal ファイルを読み込んで、sortメソッドを使うには何か特別な方法があるのでしょうか?どなたか教えて下さい。よろしくお願いします。 sortコマンドの使い方 一列目はクラス、二列目はテストの点数、三列目は氏名からなるデータ: # data.txt ---------- 1 80 安倍 1 100 小泉 1 90 小沢 2 80 松坂 2 70 松井 2 100 鈴木 ------------- があります。 これを sortコマンドで (1) 1列目昇順 (2) 2列目降順 で並び替えて # data2.txt ---------- 1 100 小泉 1 90 小沢 1 80 安倍 2 100 鈴木 2 80 松坂 2 70 松井 ------------- のように、クラスごとに得点順に並び替えたいと思っています。 sort のオプションは -k が並び替えの基準の列の指定 -r が逆順 -g が数値データ なので cat data | sort -grk2 | sort -k1 としてみましたがうまく行きません。 一つめ「sort -r -k2」でせっかく二列目降順に並び替えているのに、二つめ(右)の sort -k1 でその結果が無くなってしまって 1 100 小泉 1 80 安倍 ← !! 1 90 小沢 ← !! 2 100 鈴木 2 70 松井 ← !! 2 80 松坂 ← !! のようになってしまいます。 どうすればよいでしょうか? 数字を認識するsortコマンドはありますか? Windows XP/7のファイルマネージャーを見ていると、桁数に関係なく数字がソートされています。 (昔は桁数をそろえてゼロ詰めしていたものでしたが) これと同じことができるsortコマンドはないでしょうか? ファイル1 ファイル2 : ファイル10 ファイル11 というような内容のテキストファイルをソートして、数字順に出力してほしいのです。 現状では ファイル1 ファイル10 ファイル11 ファイル2 : となってしまいます。 sortコマンドについて いつもお世話になっております。 sortコマンドについて質問させて下さい。 現在UNIXコマンドのsortによってファイルをソートしようとしています。 ソート対象となるファイルは下記の通りです。 ファイルの種類:csvファイル ファイルサイズ:80MByte 1レコード長:48Byte レコード数:120万レコード レコード例: 2,1000 ,1,10C0,15,0000000100000000000000000000000000000000 2,1117 ,1,10B0,16,0000000300000000000000000000000100000000 ・ ・ ・ そこで下記のようなコマンドにてソートしています。 sort -t, -k 1,1 -k 2,2 -k 3,3 -k 4,4 < fileA.csv > fileB.csv すると「sort:0653-657ソート中に書込みエラーが発生しました。」と出力され中断してしまいます。 自分なりにsortコマンドについて調べてみたところ、 /usr/tmpディレクトリのファイルシステムがいっぱいになることでコマンドが失敗しているようです。 (一時的にそのディレクトリにソート内容を展開しているようでした) 社内にて/usr/tmpディレクトリのファイルシステムの拡張を求めたところ「できない」と言われてしまいました。 開発の最終段階でのボリュームテストを行ったときの障害でしたので、 処理を大幅に変更するような対処は出来ない状況です。 代替方法などありましたらご教示頂きたいと思います。 以上、宜しくお願い致します。 C言語のCSV形式からのソート C言語初心者です。 C言語でCSV形式のテキストファイルを読み込み そのファイルの内容(数値)を昇順にソートして表示するプログラムを作りたいのですが中々上手く行きません・・・。 調べても分からず困っています。 どなたか教えていただけませんか? 数字のソート 早速です。 以下のように頭に連番、 次の4項目が00~99までの数字の レコードがあります。 これを連番は崩さず、 4個の数字を昇順に並べたいのですが。 どのようにソート(コード)すれば宜しいでしょうか。 1<>8<>13<>27<>30<> 2<>20<>9<>1<>16<> 3<>5<>31<>36<>38<> 4<>52<>79<>18<>27<> 5<>23<>15<>9<>28<> 6<>38<>6<>45<>25<> ↓ 1<>8<>13<>27<>30<> 2<>1<>9<>16<>20<> 3<>5<>31<>36<>38<> 4<>18<>27<>52<>79<> 5<>9<>15<>23<>28<> 6<>6<>25<>38<>45<> 宜しくお願いします。 ソートについて 同様の回答があったら申し訳ありません。 現在CGIにてリストを作成しています。現状、書いた順番によってリストが作成されていますが、書き込まれたファイルのある1フィールドで昇順にソートさせたいのですが、うまくいきません。 ファイルレイアウト(例)↓ ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17) 上記のようなレイアウトのファイルで、「$9」>「$10」(?)の条件(第一条件が$9、第二条件が$10です)でソートさせる場合、どの様なコマンドを書けば良いのでしょうか? java ソーティング バブルソート 昇順 Javaです テキストファイルを読み込み、ソーティングしてから書き込む ソーティングはバブルソートで行う テキストファイルは50行まで一行は10文字以内 読み込み書き込みはプログラム内で行う 半角英数字のみのテキストファイルとからのテキストファイルを用意する (ASCIIコードで昇順) 入力ファイル 1231 1f23 出力ファイルは 1231 ・・・・ ファイルを開く等のダイアログのソート順 各アプリの「ファイルを開く」等を選択するとダイアログが現れ、ファイルの一覧を表示 しますが、このソート順はデフォルトでは「ファイル名」の昇順になっているかと思い ます。 最近何の操作をしたのかわかりませんが、更新日時の降順になってしまいました。 詳細で表示してファイル名昇順ソートした後にファイルを選択したりキャンセルしても 直りません。 不便なので、ファイル名昇順で表示されるように戻すことはできないでしょうか? AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム Access テキストデータのソートについて Accessでのテキストデータのソートの仕様で悩んでます。 例を挙げると・・・ テキスト型のフィールドに対し以下のようなデータを入力します。 フィールド1 9-1 9-001 9-0001 90-1 90-001 900-1 900-11 9000-1 9001-1 90000-1 ここでフィールド1を昇順でソートをすると 90000-1 9-0001 90-001 9000-1 9-001 900-1 900-11 9001-1 90-1 9-1 という順になってしまい、並び方に一貫性が無いように思えます。 なぜこのような並びになってしまうのか? お判りになられる方、いらっしゃいませんか?? 検索結果の再ソートを試みる。 項番 商品番号 生産日 賞味期限 A B C D E 1 1 200407 200507 2 1 200307 200407 3 2 200404 200504 4 3 200406 200407 5 3 200405 200406 6 3 200404 200405 上記のテーブルがあったとして、以下の処理を実現するSQLを考えます。 1. 上記のものを、商品番号の昇順・生産日の降順(最新)でソートし、 商品番号毎に生産日が最新のものを抽出します (期待される結果:項番3、4、1の順で3つ抽出) 2. 取得したのを賞味期限の昇順にソートします ※項目は、項番商品番号生産日賞味期限の他にもABCDE……と存在するものとします。 カーソルオープン時に上記1、2を満たす事が条件です。 上記SQLの記述について、どなたか助言おねがいします。 ソートについて 数百件のデータを昇順でかつ高速にソートしたいのですが、 やり方がわかりません。 アドバイスお願いします。 sortコマンドについて ファイルaaaについて、 第1ソートキーを第1列目で数値順に 第2ソートキーを第2列目でアルファベット順に ソートした結果をbbbに出力したいと思います。 sort -n -k 1,1 -d -k 2,2 aaa > bbb としたところ、正しい結果が得られませんでした。 どのようにしたら良いのか教えて下さい。 ピボットテーブルを複数項目でソートしたい ピボットテーブルに展開したデータを、表示している複数の行項目 によりソートすることは可能でしょうか? 行項目として以下が設定されており、 1.科目 2.仕入先 3.購入種類 列項目としては 4.仕入月 データとしては 5.仕入金額 並べ替え変えたい順序としては、 科目毎の年間仕入金額が多い順の購入種類昇順としたいので、 以下のように設定したいのですが、 ピボットテーブル フィールド詳細オプションでは 1項目しかソート順に指定することができません。 1.科目昇順⇒5.合計/仕入金額降順⇒3.購入種類昇順 上記のようなソートを行う方法はありますでしょうか? 多項目のソート 現在Excelを使っているのですが 複数項目のソート(列1を最優先、列2を2番目に優先、列3を3番目に)はあるのですが 3項目までしか設定ができなくて困っております。 これ以上の数をソートできて、尚且つ優先順を設定できるソフト・ツールはないでしょうか? ご存知の方がいらっしゃいましたら宜しくお願い致します。 フリーウェアでお願いします。 クイックソート クイックソートのアルゴリズムの問題で 9 1 8 5 3 4 2 6 7 と上記のようなデータ列を昇順に整列するときに 9 1 8 5 3 4 2 6 7 6 1 8 5 3 4 2 9 7 6 1 2 5 3 4 8 9 7 とここで詰まってしまうんですけどどうしたら昇順に導けますか? ファイル名のソート順について ファイルの整頓などで、ファイル名の昇順でソートしたとき 必ず一番上に置きたいファイルの名前の先頭に"*"や"_"を付けるようにしてるいるのですが 一番下に置きたいときは何の文字を使えば良いでしょうか。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター OS(技術者向け) Windows系OSLinux系OSBSD系OSSolaris系OSiOS(技術者向け)Android OS(技術者向け)その他(OS) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
お返事ありがとうございます。 ファイルを調べると文字コードがShift-JIS でした。試しにEUCに変換してやると うまくいきました。Shift-JISでは だめなのでしょうか? とりあえず今は iconv -f shift-jis -t euc sort iconv -f euc -t shift-jis みたいにしてソートしています。 gaktankさん3度をお返事をいただいて 本当にありがとうございました。