• 締切済み

perlで先頭の数値をみて昇順にならびかえたい。

perlで先頭の数値をみて昇順にならびかえたい。 以下のようなデータの先頭の二桁の数値をみて、昇順に行ごと並び替えをしたいです。 sort を使えば簡単にできるのでしょうか? perlをはじめたばかりでよくわかりません。 ぜひ詳しく教えてください。お願いします

みんなの回答

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.4

windowsの環境という前提で回答します。 以下のようなスクリプトを作成してください。(1行です) ------------------------ print sort(<>); ------------------------ これをデータファイルが存在するディレクトリと同じ所に保存してください。 ファイル名は、sort.plとします。(名前は任意です。他の名前でもかまいません) データファイル名をdata.txtすると、 コマンドプロンプトで、そのディレクトリに移動し、 perl sort.pl data.txt と入力してください。画面にソートされた結果が表示されます。 ファイルに出力したい場合は、それをリダイレクトして下さい。 以下のようにします。 perl sort.pl data.txt > out.txt と入力してください。 out.txtに結果が格納されます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

このデータで「先頭の二桁の数値をみて、昇順に行ごと並び替えをしたい」なら sort でいい.

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

perlでデータにページ数を付加したい。 - Perl - 教えて!goo( http://okwave.jp/qa/q8540888.html ) との一連の処理でしたら、配列のハッシュに入れてkeyでソートし、配列の要素数でページを付ければ良いです。  Perlが最も得意とする処理です。 12 パンダ 25 ペンギン 12 コアラ 11 ライオン 27 レッサーパンダ 10 象 11 トラ 11 キリン 31 カンガルー 27 ヒョウ があったとすると、 $animals{'12'}=(パンダ,コアラ) $animals{'25'}=(ペンギン) $animals{'11'}=(ライオン,トラ,キリン) と言う風に、後はkeyでソートして、適当にフォーマットして出力すれば良いです。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

> sort を使えば簡単にできるのでしょうか? はい。 sort関数は、比較方法を関数とし指定することができます。 詳しくはマニュアルを。 http://perldoc.jp/func/sort

関連するQ&A