• 締切済み

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

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

  • CGI
  • 回答数2
  • ありがとう数0

みんなの回答

  • 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

  • HTMLからPerlを呼び出すには?

    今、Perlで他のサイトのtxtファイル(中身はliタグやaタグのHTMLファイルで、そのサイトではSSIで呼び出されています)を、入手して表示させるプログラムを作っています。 これを、呼び出して、あたかも私のサイトのように見せるにはどうすればよいでしょうか? 現在はiframeを使ってそのままtxtファイルのアドレスを指定しているのですが、拡張子がtxtであるため、IEでしか見れないという不具合があります。 これを解決するために、とほほさんのwww入門 http://tohoho.wakusei.ne.jp/wwwperl2.htm#socket で紹介されているPerlを参考にしました。そのPerlのファイルをブラウザから直接URL指定すれば実行できるようにはなり、txtの中身が表示されるようになったのですが、どのようにHTMLから呼び出せばよいのかわかりません。 やはりSSIで実行するしかないのでしょうか。 javascriptの場合、<script>タグでHTMLに直接スクリプトを記述できますが、Perlでもそのようなことは可能ですか?

    • ベストアンサー
    • HTML
  • perlで記号除去を行いたいのですがうまく行かない

    perlで記号除去を行いたいのですがうまく行かず困っています。 文字列はEUCです。そこから$patternのような記号を削除したいのですが・・・。 http://www.din.or.jp/~ohzaki/perl.htm#Character 正しくパターンマッチさせる を参考に $ascii = '[\x00-\x7F]'; $twoBytes = '[\x8E\xA1-\xFE][\xA1-\xFE]'; $threeBytes = '\x8F[\xA1-\xFE][\xA1-\xFE]'; $pattern=q([\!!\##\%%\--―ーー・・\//\;;\??\\¥__`‘\{{\}}\++\((\))\[[\] ]\**@@\$$&&\::\>>\<<\~ ̄\^^\"”\'’  \,,\..\==\||\、、\。。]); if ($data =~ s/((?:$ascii|$twoBytes|$threeBytes)*?)(?:$pattern)/$1/mg) { print "マッチした $& \n"; } print $data; として$dataに下の2つを与えてみました。 サンプル1 【あいうえお】 サンプル2 【aaa】 ところが・・・ サンプル1 (出力なし) サンプル2 旻aaa桿 何が悪いのかわかりません・・・ ためしにパターンに【】を追加したところサンプル2はうまく行きましたが サンプル1に変化がありません。(あいうえお も消えてしまう) 何か思い当たる点がありましたら教えてください。よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • IRCというチャットのやり方がわかりません

    http://www.din.or.jp/~ohzaki/uzura.htmのサイトで うずらという高度なAIとチャットするためには IRCというものが必要みたいなのですが CHOCOAというソフトをDLする所まではわかるのですが そこからどうすればいいのかわかりません。 うずらと会話してみたいのですが詳しいやり方を教えて下さい。

  • Perlからsyslog経由でログを出力したい

    皆さん、こんにちは。 Perlからsyslog経由でログを出力しようと考えています。 2点質問がありますのでご存知でしたらご教授ください。 (1)Perlスクリプトからsyslog経由でログ出力する方法 いろいろ方法は考えられるかと思いますが、 よく使われるエレガントな方法をご教授していただけるとありがたいです。 通常はやはりloggerを使うのでしょうか? (2)syslog経由で任意のファイルに出力する方法 syslogで、あるプログラムからのログにおいて、 このレベルはこのファイルという分け方はできますか? できなければ別の手段はありませんか? syslog-ngであればこのようなことができるのでしょうか? もしできれば方法を教えてください。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • タグを正規表現で完全に削除

    こんばんわ~ときどきこちら様でお世話になってます タグ(Java ScriptやHTML中のCSS等きわめて複雑なものも含む)を完全に削除してウェブサイトの文字だけを抜き出したいんですけど自分にはハードルが高すぎたみたいです^^; http://www.din.or.jp/~ohzaki/perl.htm#HTML_Tag いろいろ調べているうちにこちらのサイト様を発見し、 $none_tag =~ s/$tag_regex//; とやってみましたがなぜかタグが残ってしまいます。 とあるサイトの【文字】だけを抜き出せれば良いのでタイトルに正規表現と記載しましたがその他の方法でも構いませんのでよろしくお願いしますm(_ _)m

    • ベストアンサー
    • Perl
  • perlでご助言いただきたく。お願い致します。

    <?xml aaa=111 bbb=222 ccc=333> <A>$var</A> <B>$var</B> <C>$var</C> | | | <Z>$var</Z> <END></END> 上記のようなテキストファイルをperlプログラムで 作成したいときについて。 上記記述をプログラム内であらかじめ雛形として記述しておき $varの変数の中身をかえることで違うテキストファイルが 出来上がることを達成するにはperlでどのような記述を すればいいのでしょうか。 自分が調べた範囲では、"ヒアドキュメント"を 使えばいいのかなと考えていますが、もっと良い方法や 文法があれば御教授願います。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • Perlの文字コードを意識したファイルの読み込み方

    perl5.8でファイルを読み込む場合、文字コードを意識した以下のような呼び方("<:euc-jp")があるのですが この方法で読み込んだ$datの中身はperlの内部コード(UTF8)になっているということでしょうか? それとも、普通に("<")で読み込んで$dat = Encode::decode("euc-jp", $dat);とすべきでしょうか? use utf8; use Encode; my $fname = "test.txt"; # 文字コードがEUC-JP my $dat = ""; open(IN, "<:euc-jp", "$fname) or die "open error!"; flock(IN, 2); while(<IN>){ $dat .= $_; } close(IN);

    • ベストアンサー
    • Perl
  • CGI(perl)データベースを教えてください。

    http://www2.inforyoma.or.jp/~tokaji/cgitech/db.htm を見てperlで簡易データベースを作ることが可能ということを知ったのですが、いくつか質問があります。 お願い致します。 <状況> flashから送られてきた「ID」・「パスワード」・「その他のデータ」をサーバのperlデータベースで管理する。 (1)まず、本当にperlでデータベースは作れるのでしょうか? (2)access等の簡易ではないデータベースと比べると どんなリスクがあるのでしょうか? (3)メモ帳でデータの管理をすると思うのですが、セキュリティ面は、大丈夫でしょうか? (4)どのくらい(仮に1000~10000人)のアクセスに耐えられるのでしょうか? サーバにかかる負荷は、access等の簡易ではないデータベースと比べると、大きくなるのでしょうか? (5)Flashからのデータをperlを使い管理する時、 最善の方法があれば教えてください。 長くなりましたが、よろしくお願い致します。

    • ベストアンサー
    • Perl
  • Perl から csh 実行

    やまとです。 いつもありがとうございます。 Perl + csh を同時(?)に実行する方法を教えてください。 OSはSunです。 具体的にどのような処理を行いたいか簡単に説明しますと。 1.Perlでcshを実行(system関数?)し、cshで環境変数をセット(source)する。 2.cshで環境変数をセットしたら、ファイルを出力する処理が行われます。 3.Perlでcshによって出力されたファイルの内容を画面に表示します。 以下ソースを掲載します。(抜粋して) ================================================== = Perl ( test_perl.pl ) $data = "ABC"; $ret = system(`test_csh.sh $data`); ・ ・ ファイル(test.log)を開き、読込、画面に表示します(まだ作成してません。) ================================================== = Csh ( test_csh.sh ) source test_source.sh echo $1 > test.log ================================================== = test_source.sh setenv CLASSPATH .:/aaa・・・・・・ ↑ PATHの設定を行ってます。 ================================================== 画面に、「ABC」と出力させたいのです。 Perlからcshが実行されていないように思えるのですが、 Perlのsystem関数の使い方が誤っているのでしょうか? それとも、ClassPath等の設定をしなければならないのでしょうか? ちなみにコマンドから、 # test_csh.sh ABC と実行しますと、ファイルが出力され、かつ、sourceも実行されています。 Perlから実行する方法を教えてください。 説明が不十分であれば、補足いたしますのでご指摘ください。 宜しくお願いします。

    • ベストアンサー
    • Perl
  • perl使用のCGIでのデータファイルの取り扱いについて

    こんにちは、 perlでCGIを動かしているんですが 掲示板やアクセスログなどのデータファイルの置き場所についてこまっています perlのopen関数などでファイルを開くことはできても、直接URLを指定すれば 見ることができてしまいまます。 内部の実行からは読み書きできて、直接URLを指定したら、アクセス拒否にする というパーミッションの設定or.htaccessなどの設定方法があれば教えてください。

    • ベストアンサー
    • CGI

専門家に質問してみよう