1 名前:(・∀・)チンポー!! mailto:(・∀・)チンポー!! [04/06/02 11:39] perl書きなんだがさ、こうリクに答えてなんか作りたいんだ。 だからリクエストをくれ。
655 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 02:45:23 ] >>654 タイムスタンプは time_t 型の数値を保存できる場所でな。
656 名前:デフォルトの名無しさん mailto:sage [2006/11/08(水) 14:02:06 ] >>655 あ。なるほど。タイムスタンプを無理矢理カウンタとして使うのか。 たしかにできるけど、強引な方法だな・・・。
657 名前:デフォルトの名無しさん mailto:sage [2006/11/08(水) 21:11:30 ] それどうやって排他するん?
658 名前:デフォルトの名無しさん mailto:sage [2006/11/08(水) 22:21:24 ] >>657 普通にflockなりなんなりお好きな方法で。
659 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 23:53:28 ] @CSV = <INCSV>; $line_amount = @CSV + 1; $lines = do { local $/; <INTEXT> }; @Aitems = map {(split '\t', $_, 2)[0]} @CSV; @Bitems = map {(split '\t', $_, 2)[1]} @CSV; @A = @Aitems; @B = @Bitems; chomp (@B); for ($i = 0; $i < $line_amount; $i++){ $lines =~ s/$A[$i]/$B[$i]/g; } print OUT $lines; ------------- タブ区切りで、検索文字列[TAB]置換文字列 というテキストを作って、それを読み込んで置換するスクリプトなのですが、 一応動作はするものの、置換文字列に $1, $2 など後方参照の変数がそのまま 文字列として出てきてしまいます。これを展開できるようにするには どうすればいいのでしょうか。
660 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 11:16:41 ] /e
661 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 17:33:14 ] >660 だめでした。 $lines =~ s/$A[$i]/$B[$i]/ge; 置換失敗、($1)という文字列が出ます s/「(.*?)」/($1)/ge; こういうのは置換成功(eなしで問題なし) s/(あ)\1/嗚呼/g;
662 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 16:02:15 ] /ee
663 名前:リクエスタ [2006/11/16(木) 23:38:52 ] 横一列に並んだ単語を縦一列に直すスクリプトをリクしたいっす ↓ 単語が横一列になっているファイルを(ファイル名は例えば sample1.txt ) globe apple captain delicate baseball e-mail family ↓こんな感じに縦列に並べ変えたい globe apple captain delicate baseball e-mail family
664 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 23:44:17 ] エディタで空白を改行に置換したらいいやん
665 名前:663 mailto:sage [2006/11/17(金) 00:00:18 ] あ、そっかwwww sed 's/ /\n/g' sample1.txt > sample2.txt でできましたw
666 名前:デフォルトの名無しさん [2006/11/17(金) 12:04:26 ] my (%data); my $num1 = 3; my $num2 = 4; my $moji =tetra; $data{$moji} = [ $num1, $num2 ]; print("%d",$data{$moji}); perl 実行 %dARRAY(0x85a7c28 何かよくわからない結果になってしまったのですが・・・
667 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 12:09:58 ] こっちで聞いても同じだぞ
668 名前:デフォルトの名無しさん [2006/12/06(水) 15:03:15 ] 掲示板(KENT e-pad)を10分毎に監視して 新規の書き込みがあった場合、内容をメールで送るスクリプト作って下さい。
669 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 16:19:01 ] >>668 じゃあ雛型だけ。あとは getbbs() と sendmail() を作れば完成だ。がんばれ。 #!/usr/bin/perl -w use strict; my $olddata; for (;;) { # 掲示板の内容を取得する。 my $data = getbbs(); if (defined($olddata) && $data ne $olddata) { # メールを送信する。 sendmail($data); } $olddata = $data; sleep 60 * 10; }
670 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 16:35:42 ] ぎゃふん!
671 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 17:34:31 ] sendmail のサンプル sub sendmail { my $data = shift; open(F, '| /usr/lib/sendmail -t >/dev/null 2>&1') or die; print F "From: hoge\@fuga.com\n"; print F "To: moga\@mugu.com\n"; print F "MIME-Version: 1.0\n"; print F "Content-Type: text/html\n"; print F "\n"; print F $data; close(F); } 但し /usr/lib/sendmail がなければならない。 (つまりこれは主に UNIX 系 OS 向け。Windows なら Cygwin 環境で動くかも)。
672 名前:デフォルトの名無しさん [2006/12/06(水) 18:26:52 ] >>669 >>671 有難う。 getbbs() も雛形お願いします。
673 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 14:00:49 ] getbbs のサンプル use LWP::Simple; # これはプログラムの最初に書く。 sub getbbs { my $url = '... ' # これは実際のURLにする。 return get($url); } ていうかこんなサブルーチン使わないでそのまま get() やっちゃえばいいかな。 上記のように LWP::Simple を使って串を通したい場合は環境変数の http_proxy に串のURLをセットしておく ( proxy.hoge.com のポート 8080 の場合は http_proxy に proxy.hoge.com:8080/ をセットしておくか perl プログラムの中で $ENV{'http_proxy'} = 'proxy.hoge.com:8080/ '; をやっておく)。 LWP::UserAgent を使って自分で色々する場合は $ua->proxy(...) のような 設定方法も使える。
674 名前:デフォルトの名無しさん [2006/12/07(木) 15:38:14 ] >>673 ありがとうございます。 試してみます。
675 名前:デフォルトの名無しさん [2006/12/08(金) 23:46:45 ] 組織名 人名 番号(英字3つの後に数字7つ) 組織名 人名 番号(英字3つの後に数字7つ) という風に並んでるファイルから 番号だけを取り出して 07.番号(英字3つの後に数字7つ) と書き換えたいのですがお願いします また、自分でもこういう丸投げはやっぱりよくないとは思うのでもし 「そんなのここ見りゃかいてあるから」みたいなサイトがあれば教えてください
676 名前:デフォルトの名無しさん mailto:sage [2006/12/09(土) 00:06:03 ] 「正規表現」は知ってる? 各行の最後の10文字の前に「07.」を割り込ませる、って考えでどうだ?
677 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 09:25:32 ] >>666 printfの間違い。 $data{$moji}は配列へのリファレンスになっているんだから、 $data{$moji}[0]なり$data{$moji}[1]なりにしないとそうなる罠。
678 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 21:28:17 ] use Kakiko::Test;
679 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 19:41:49 ] >>675 perl -ne 'if(/\s+(\w{3}\d{7})\s*$/){print "07.$1\n"}' hoge.txt
680 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 23:02:55 ] FORMで受け取った文字列をCSVファイルから検索して表示させるスクリプト下さい
681 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 09:56:03 ] grep
682 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 14:24:02 ] 「1からnまでの乱数をn個発生させ、小さい方から並べるプログラム」を作成する。 nの値をさまざまに変えて実行時間を計測せよ。 クイックソートの実行時間が理論値O(n log2 n) となるかどうか検証せよ。
683 名前:デフォルトの名無しさん [2006/12/21(木) 14:29:11 ] このデータと解析結果、検証の結果をレポートで提出せよ。
684 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 02:32:04 ] >>681 便乗でスマンがFORMからのデータの受け取りを cgi-lib.plに頼らない為のヒントを教えてほしい。
685 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 03:05:30 ] getならurl末尾、postなら標準入力 意地悪じゃなく調べればいくらでもあると思うんだが…
686 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 10:23:07 ] CGI.pm使えよ
687 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 10:58:44 ] >>684 CGI, 環境変数, あたりでぐぐれ
688 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 22:53:42 ] >>685-687 ありがとね。 参考書に「難しいからcgi-lib.pl使え」ってあったから 勝手にその事については載ってないと思った。 まぁ習い始めたばかりだけど、調べたりなかったのは反省してる orz
689 名前:デフォルトの名無しさん [2007/01/11(木) 00:57:44 ] 1分に一度指定板のスレッド一覧を取得して更新があれば差分だけダウンロードして元のファイルに付け足して保存する。 ってのをPerlで作ってくれ。 いや、作ろうとしたんだよ。でも2chのページにアクセスすると403がでてな。
690 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 01:27:11 ] >>689 オイスター作戦でぐぐれ。
691 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 01:41:41 ] つまりMonazilla MLに参加してるツールに成りすませばいいってこと? それとも不可能ってことかな?
692 名前:デフォルトの名無しさん [2007/01/11(木) 02:08:36 ] リクです。 youtube内にアップされている動画のタグ情報を引っ張って来れるプログラムをお願いします。 #!/usr/bin/perl -w use strict; use LWP::UserAgent; my $url = shift @ARGV; my $ua = LWP::UserAgent->new(); $ua->agent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1);'); my @tags = &getTag($url); print join(",", @tags), "\n"; sub getTag { my ($url) = @_; my @tags; my $content = $ua->get($url)->content; while($content =~ /href=\"\/results\?search_query=(.+?)\"/g){ push(@tags, $1); } return(@tags); } ここまで行ってるのですが、入力する動画URLの取得を自動化したいんです。
693 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 10:09:16 ] http:// から始まるIPとホストが書いてあるアドレスを抽出したい場合の IPとホストの表現を教えてください。
694 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 10:52:03 ] ttp://www.din.or.jp/~ohzaki/perl.htm#httpURL あるいは use Regexp::Common; して $RE{URI}{HTTP}
695 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 17:08:25 ] >>694 ありがとうございます
696 名前:デフォルトの名無しさん [2007/01/20(土) 23:57:02 ] HP等の日記にパスワードがかかっていた場合、 そのパスワードを解析してくれるソフト作ってください。。。
697 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 00:17:41 ] 不正アクセス禁止法違反。
698 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 03:56:05 ] すべてのパスワードを解ける解法があったとしても すべてのパスワードを解けるプログラムやスクリプトは絶対にない
699 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 06:00:58 ] >>698 時間を掛ければ何でも解けるのでは? 但し何万年とか掛かるかも知れないが。
700 名前:デフォルトの名無しさん [2007/01/25(木) 01:00:43 ] >>1 微分や積分するプログラムってperlで作れる?
701 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 01:51:10 ] 数値微分/数値積分なら公式は山ほどあるだろ。 マセマティカ並の数式処理能力が欲しければ数学科大学院へでも池
702 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 21:56:03 ] Win NTでデフォルトのプリンター名を取得したいのですが。
703 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 00:51:22 ] 重機ネット上にあるDBから 氏名と電話番号を一覧表示するスクリプトを作ってください
704 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 16:19:10 ] >>703 まず重機ネットのDBから氏名、電話番号の入ったデータをCSV形式で貰ってきます。 その後次のスクリプトを動かしてください。 #!/usr/bin/perl -w use strict; system('cat ファイル名'); 以上です。
705 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 01:14:58 ] 重機ネット上にあるDBに対してCRUDするスクリプトを作ってください。
706 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 17:37:51 ] 一休さんかよ
707 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 17:57:58 ] とんち比べですな。
708 名前:デフォルトの名無しさん mailto:sage [2007/04/25(水) 21:54:31 ] 数字を月の名前に変換するコードができました!! @Month = ("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); sub mmm { return $Month[(shift)-1]; } @Month を切り替えればいろいろな名前に変換できると思います。 @Month = ("JAN.", "FEB.", …… @Month = ("睦月", "如月", ……
709 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 12:04:47 ] 釣れまsk?
710 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 16:47:33 ] どなたか、ナンプレを解くスクリプト作って下さいませんか?
711 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 19:12:12 ] sudoku solver でググれ
712 名前:デフォルトの名無しさん mailto:sage [2007/04/27(金) 12:52:11 ] >>708 perl -MDate::Manip -e 'print UnixDate(ParseDate("today"),"%B"),"\n";'
713 名前:708 mailto:sage [2007/04/27(金) 20:32:47 ] 利点としては: ・ハッシュを使うコードよりも軽量・高速。 ・「01」とか、ゼロ付きの数字にも対応。 欠点としては: ・逆引きができない。 というわけで、"JAN.."とか"睦月"から数字への変換と、数字から名前への変換、 両方ともできる粋なコードをおながいします。
714 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 07:48:33 ] 質問箱に書き込んだのですが、スレタイからするとこちらの方がよいかもと思い、書き込ませていただきます。 マルチポストをお許し下さい。 perlはまるっきりの初心者です。どなたかお知恵を貸して下さい。 2つのファイル a.txt と b.txt を比較して、条件にあった行を抽出、出力するスクリプトを作りたいのです。 具体的には、 [a.txt] ID, field1, field2 1, 5.8, 7.3 2, 6.3, 8.2 3, 3.2, 4.1 4, 4.8, 4.0 5, 8.3, 10.2 [b.txt] ID, field1, field2 1, 6.8, 7.7 3, 4.3, 5.5 4, 5.9, 4.9 というファイルがあったとき、b.txt のIDに数値が存在する行だけを a.txt から抽出して a2.txt として保存したいのです。 [a2.txt] ID, field1, field2 1, 5.8, 7.3 3, 3.2, 4.1 4, 4.8, 4.0 と言った具合にです。よろしくお願いします。
715 名前:714 mailto:sage [2007/05/03(木) 08:04:26 ] 自己レスです。 質問箱の方で回答を頂きました。マルチポスト失礼しました。 あ、でも他のやり方もあるぞ、というのがあったら教えて下さい。勉強の題材にさせていただきます。 #!/usr/bin/perl use strict; use warnings; open my $a, '<', 'a.txt' or die; open my $b, '<', 'b.txt' or die; my %ids = map { $_ => 1 } map { (split /,/)[0] } <$b>; while (<$a>) { my $id = (split /,/)[0]; print if $ids{$id}; }
716 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 04:45:07 ] >>715 $aと$bはmyの対象外の特殊な変数だからサンプルコードだとしても変数として使うのは止めたほうが良い。
717 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 22:34:27 ] maildrop によって転送されたメールが画像添付ファイルだった場合に、添付画像だけを除去してくれる perl/php スクリプト ...ってスグに書けますスか?
718 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 02:18:19 ] はい。
719 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 00:45:44 ] >>718 くれくれで申し訳ないのですが、どうか作っては下さいませんでしょうか...?
720 名前:デフォルトの名無しさん mailto:sage [2007/06/05(火) 21:10:30 ] >>719 どのくらい払ってくれる?
721 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 17:30:47 ] >>720 相場はいかほど?
722 名前:デフォルトの名無しさん mailto:sage [2007/06/06(水) 19:07:26 ] とりあえず工数の見積もりに1万5千円ほどいただきます。
723 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 09:51:36 ] >>722 なんと...見積もりだけでそんなにかかるとわ。 もう少し安くならないの?
724 名前:デフォルトの名無しさん mailto:sage [2007/06/07(木) 16:06:52 ] 今なら、なんと、お見積もりが、ご奉仕価格の 1 万 4999 円!
725 名前:デフォルトの名無しさん mailto:sage [2007/11/30(金) 23:14:49 ] このスレ、突然廃れたんだな。直前まで賑わってたみたいだが、自作自演でもやってたか?
726 名前:もつ ◆hS9D2mmxqU mailto:sage [2007/12/25(火) 11:20:24 ] 保守?
727 名前:デフォルトの名無しさん [2008/01/10(木) 02:10:56 ] ほ
728 名前:デフォルトの名無しさん [2008/01/10(木) 10:30:50 ] Amazonのマーケットプレイス画面をgetしたいのですが、 www.amazon.co.jp/gp/seller-account/management/your-account.html にPerlでアクセスすることが出来ません。 認証とかが必要なのでしょうか・・・・・・・。
729 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 18:13:20 ] そりゃあ、自分のアカウントデータのやりとりは必要だろう
730 名前:anonymous mailto:sage [2008/01/26(土) 14:13:12 ] 2chの特定のスレURLを任意で指定し、 すべての投稿から、「すでに投稿された文面が再度登場していたら、 その数だけレス番付きで抽出する」 というものはできないでしょうか。 要は何がやりたいのかと言うと、 「スレッドがコピペ投稿だらけ」になっており、 レス削除要請を行いたいのです。 ただ、そのコピペの数が尋常じゃないので抽出が困難なのです。 「文面の95%が一致していたらコピペとみなす」機構が嬉しいです。
731 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 19:37:04 ] 95%で、無関係の文章が巻き込まれたら嫌だなぁ。 って話はとりあえず置いといて、検索してたら String::Trigram とかいうモジュールがヒットした。 この辺使えば作れるのかな? あとはスパムフィルタ関連の資料か。 URLの有無で判定するタイプもあるらしいから そういうタイプのフィルタは参考にはならないかも知れないけど。
732 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 22:04:23 ] コピペ連投だと行頭の空白とかが混じることがあるから、 文字の先頭から末尾までが一致していたらアウト、という判定でいいんじゃね。 そういうの欲しいならRubyスレで頼むほうが早いかもよ。
733 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 01:12:36 ] 指定したファイル以外を消去する作って!
734 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 02:21:14 ] >733 それだけじゃ何をどうすれば良いのか分からんな。 「カレントディレクトリ内にある指定したファイル以外を消去」だとすれば perl -e"for (glob '*'){$_ eq $ARGV[0] or unlink $_}" ファイル名 で出来るが、サブディレクトリは多分掘らない。
735 名前:733 mailto:sage [2008/01/30(水) 05:19:52 ] カレントディレクトリだけでOKです。 ありがとう 今はこんな感じで改造しています。 いろいろしないといけないんですが 仮に指定したファイルがカレントディレクトリになかった場合とか 消去を確認するための方法とか ファイルを複数指定したりとか perl のコマンドに詳しい本って なにかありますかねー(ネットでも調べていますが) #!/usr/bin/perl print "指定ファイルは?"; $file = <STDIN>; for (glob '*'){$_ eq $ARGV[0] or unlink $_} $file
736 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 05:52:04 ] perl の関数一覧なら perlfunc ですぐ見れる
737 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 05:56:58 ] >735 つーかマテ、その改造コード間違ってるんじゃねーか。 $file が全く関係ないところに書かれてる。 そのコードじゃカレントディレクトリ全部削除されるぞ。 $file = <STDIN>; と書くんだったら、 for (glob '*') { $_ eq $file or unlink $_ } にしなきゃ。 $ARGV[0] はコマンドラインからの引数な。 >734 はファイル名を引数として渡してる。
738 名前:733 mailto:sage [2008/01/30(水) 08:29:20 ] >>737 あー ミスでしたか コマンドとか引数とか覚えないといけないところが まだまだありますな >>736 perlの関数 ありがとう
739 名前:デフォルトの名無しさん [2008/03/25(火) 20:19:49 ] 任意のフォルダに入ってるexeファイルを起動するスクリプトがほしいです。
740 名前:デフォルトの名無しさん mailto:sage [2008/03/26(水) 12:11:44 ] >739 その「任意のフォルダ」はコマンド引数で指定すれば良いのか? 「任意のフォルダ」に.exeファイルが複数入ってる場合はどうすれば良いんだ?
741 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 15:23:34 ] ActivePerlで (擬似)子プロセスにてある条件を満たすと(sleep5とかでもなんでもいい)、親プロセスのTKウィジェットに反映する(リストボックスに一行追加とか)するスクリプトください
742 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:54:41 ] ttp://www.linkrr.com/ みたいな複数のURLアドレスを一気に開くことのできるスクリプトが欲しいです
743 名前:デフォルトの名無しさん [2008/10/11(土) 18:59:15 ] 過疎ってるなー DBD::CSV使って、 execsql.pl -noheader "SELECT T1.ROW1, T2.ROW3 FROM temp1.txt T1 temp2.txt T2 WHERE T1.ROW1 = T2.ROW2 AND T1.ROW2 = 'abc';" > result.txt みたいに使えるスクリプト誰か作って。
744 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 19:05:12 ] 間違えた col1 col2 か SQL初心者な物で
745 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:08:41 ] 今日も perl でエロ画像収集! 明日も perl でエロ画像収集! エロ画像収集言語 perl 万歳!
746 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 13:49:53 ] >>743 だけど、DBD::CSVにバグがあった やってらんねー 結局できたけど
747 名前:デフォルトの名無しさん [2008/10/26(日) 08:58:18 ] ここでperlをPHPに変換とかしてくれる?
748 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 12:55:13 ] ばっちこい!
749 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 13:08:10 ] 600行くらいあるんだけど・・・
750 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:31:15 ] 情報後出しするやつは面倒だからお断りします
751 名前:デフォルトの名無しさん [2008/10/29(水) 19:22:48 ] 偶数行と奇数行を入れ替えるスクリプトをお願いします。 出力例) $cat test.dat 1 2 3 4 5 6 スクリプト実行後 $cat test.dat 2 1 4 3 6 5
752 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:16:39 ] perl -pe 'print scalar <>'
753 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 07:17:55 ] my $old ; while (<>){ if ( $.%2 != 0 ){ $old = $_ ; next ; } print $_, $old ; undef $old ; } if ( defined $old ){ print "odd\n", $old ; }
754 名前:デフォルトの名無しさん [2008/11/14(金) 20:58:20 ] list.txtファイルに検索をかけたいキーワードを記入し そのリストのキーワードを元にgrepみたいな動作をするスクリプト listファイルの中身 $cat list.txt aho baka test 検索をかけたいファイル(test.txt)の中身 $cat test.txt aho 1 baka 2 manuke 3 test 4 実行結果 $./grep.pl aho 1 baka 2 test 4 よろしくお願いします。
755 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 21:24:33 ] #!/usr/bin/perl sub slurp { local ($/, @ARGV) = (wantarray ? $/ : undef, @_); return <ARGV>; } my $keyword_file = "list.txt"; my $target_file = "test.txt"; my @keywords = slurp($keyword_file); my $regex = join "|", map { chomp; "\Q$_\E" } @keywords; $regex = qr/$regex/; open my $fh, "<", $target_file; for my $line (<$fh>) { print $line if $line =~ $regex; } close $fh;