• 締切済み

perl任意の順番に並べ替え。

ログファイルを任意の順番に並べ替えたいのですがやり方がわかりません。 http://www.din.or.jp/~ohzaki/perl.htm#SortOriginal を見てみましたがわかりませんでした。 ログファイルの中身はこんな感じになっています。 BUSYO=aaa&TATE=2&YOKO=3&・・・ この「BUSYO」の任意の順番で並べ替えたいのです。 よろしくお願いします。

みんなの回答

  • wolfwood
  • ベストアンサー率50% (199/398)
回答No.2

下記のような感じだと思います。 $i = 0; undef(%busyo); #BUSYOの値をキーにして値に並べる順番の数値を格納する。 foreach $name ('BUSYO1', 'BUSYO2', 'BUSYO3', 'BUSYO4', 'BUSYO5') { $busyo{$name} = $i++; } @data = map {$_->[0]} sort {$busyo{$a->[2]} <=> $busyo{$b->[2]}} map {[$_, map {split /=/} split /&/]} @data; 文法などで分らない部分は補足してください。

  • kosa
  • ベストアンサー率25% (379/1464)
回答No.1

&で区切ったログファイルなんですよね? 一度ログを配列に読みこんでソートやリバース等を行ったのち再度ログファイルに上書きすればいいんじゃないですか?

関連するQ&A

専門家に質問してみよう