![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
はじめまして、perlをはじめて1週間のものです。
本やwebサイトをみてあくせくしております。
【本題】
あるtxtファイルを読み込んで、そのファイル中に該当の文字列がいくつあるかを
数え、webの画面に出そうとしております。
具体的には、txtファイルは
routerCisco
switchHitachi
router Sumitomo
router Juniper
hubmelco
routeracton
switchextream
これを読み込んで、ルータやスイッチ、ハブの数を出したいのです。
webにあらわす方法は、先達の先輩たちのsourceを見て、下のようにヘッダ/フッダ
は、作れそうなのですが、肝心の本体がどうにもわかりません。
なにか良い方法ありませんでしょうか。
読み込むべき機器台数ファイルは、別箇所に保存してあるものなのでopenとかでもって
くるんだろうなという位しか、、、、。
どうぞよろしくお願いします。
No.2ベストアンサー
- 回答日時:
@count = (0,0,0);
open(OF,"<hoge.txt");
while(<OF>){
($group,$name) = split(/\s/,$_);
if($group eq "hub"){ $count[0]++; }
elsif($group eq "router"){ $count[1]++; }
elsif($group eq "switch"){ $count[2]++; }
}
close(OF);
print "hub : $count[0]<br>\n";
print "router : $count[1]<br>\n";
print "switch : $count[2]<br>\n";
テストしてみると動かなかった上におかしかったので修正。
この回答への補足
たいへん迅速なお返事ありがとうございます。
もう一つお願いなのですが、txtファイル中にある文字が、
いかのようなものでした。
super_router Cisco
bochibochi_switch Hitachi
otegoro_router Sumitomo
super_router Juniper
otegoro_hub melco
kakuyasu_router acton
super_switch extream
この場合に、router、switch、Hubの数を知りたいのです。
すみません。がんばって勉強しますので、今回はなにとぞご教授ください。
質問してからとても早いヒントをいただきまして、
大変助かりました。
hostsファイルから稼動機器台数を調べるために必
要でした。
ありがとうございました。
No.4
- 回答日時:
下の方もやられてますが、
正規表現でその単語を含むかどうかを調べます。
if($group eq "hub"){ $count[0]++; }
elsif($group eq "router"){ $count[1]++; }
elsif($group eq "switch"){ $count[2]++; }
を、
if($group =~ /hub/){ $count[0]++; }
elsif($group =~ /router/){ $count[1]++; }
elsif($group =~ /switch/){ $count[2]++; }
かな・・・
たぶん。
No.3
- 回答日時:
perl は同じことをやるにも様々なやり方ができます。
下記の例もその一つです。参考にしてください。
%count = ('router'=>0,'switch'=>0,'hub'=>0);
open (FILE,"<hoge.txt") or die;
while (<FILE>) {
foreach $key (keys %count) {
if (/$key/) { $count{$key}++; }
}
}
close FILE;
foreach $key (keys %count) {
print "$key = $count{$key}\n";
}
No.1
- 回答日時:
単純に、
@count = (0,0,0);
open(OF,"<hoge.txt");
while(<>){
($group,$name) = splice("\s",$_);
if($group = "hub"){ $count[0]++; }
elsif($group = "router"){ $count[1]++; }
elsif($group = "switch"){ $count[2]++; }
}
close(OF);
print "hub : $count[0]<br>\n";
print "router : $count[1]<br>\n";
print "switch : $count[2]<br>\n";
こんなんで良いんじゃないかと…
最近Perl触れてないので自信なしです。
質問してからとても早いヒントをいただきまして、
大変助かりました。
hostsファイルから稼動機器台数を調べるために必
要でした。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クッキー書き込みが正常に行わ...
-
ラジオボタンが両方とも選択で...
-
[HTML]プルダウンメニューの横...
-
VB初心者。小数点以下の表示で...
-
wordの数式について 定積分を書...
-
掲示板の文字色指定について
-
チェックボックスで選択した内...
-
CGI.pmのstart_htmlで思い通り...
-
パールの-pオプションの値0777...
-
ディレクトリのファイル数取得
-
WEBページを強制的に横画面で見...
-
ラジオボタンを選択済みにする...
-
アンケートフォームで前のペー...
-
アンケートの質問を複数にしたい
-
ブックマークからのアクセスを...
-
大和ネクスト銀行の銀行コード
-
別formのhidden項目を自form値...
-
EXCELとの連携
-
レスポンスが全く返ってこない
-
【再】Cookieを使用してフォー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クオートの多重入れ子をするには?
-
perl/cgi リダイレクトができない
-
普通のHTMLの画面からCG...
-
選択式アンケート項目合計点で...
-
Spreadsheet::WriteExcelについ...
-
CGI内でけいたいスマホの振り分け
-
iis+cgiでmultipart/form-data...
-
CGIから表生成(1行に数件のデ...
-
sendmailからblatjへ
-
Yomi-Search新規ウインドで開く...
-
【perl/cgi】文字列を検索して...
-
sendmailで送信の時に文字化け
-
伝言掲示板の作成(超初心者です)
-
フォントサイズを変えるには?
-
htmlからパラメータで、cgiに渡...
-
CGI経由でのPDFファイルをダウ...
-
CGIでPERLのモジュールの有無を...
-
cgi(perl) sendmailの使い方
-
CGIでテキストボックスの内容に...
-
ひとつのCGIファイルに複数のペ...
おすすめ情報