![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
いつもお世話になります。自分の書いた長めのファイルから、あるキーワードを含む行を抜き出して表示するプログラムを作ったの(それもここで質問に答えてもらってはじめてできたん_)ですが、一致する行が多いときには、ザクザクと画面上を流れて(print;を使っています)前半部がよく見れません。>filenameでファイルに保存はできるので、後で開けばみれるのですが、できれば10行くらい表示したらストップして、何かキーボードのキーを押したら、また続きを表示するようにしたいのです。BASICでは、STOPだかWAITだかで実現できてたように思うのですが。。。適当な制御命令がありますか。頭をお借りしてよろしいでしょうか。
No.2ベストアンサー
- 回答日時:
案a)STDOUTを"|more"でオープンし直して出力。
案b)$whatを@ARGVから読み取り、コマンドラインで指定できるようにする。
――とか。具体的なコードは省略。
昨晩からお答えを見ていたのですが、うまく利用しきれずにお礼が遅くなりました。教えていただいた二つの案ともうまくいきました、ありがとうございます。案a)の方は実はうまくSTDOUTを使えず、プログラム中で一旦名前をつけて、それをsystem("moreで開いています。案b)はしっかり理解できたつもりです。最初のお答えですでに十分なヒントをもらってたんですね。初心者の質問にいいアドバイスをありがとうございました。
No.3
- 回答日時:
10行づつなら、取り合えずwhile以下を
while (<IN>)
{
if(/$what/)
{print;
$count++;
if($count>=10)
{$count=0;
<>;
}
}
}
close IN;
# <> は <STDIN>の略形です ( http://ryulife.com/attic/perl.html の第五章 )
思ってたとおりに動きます!ありがとうございます。ただ、なんでうまくいってるのか、まだよくわからないです。でも、そっちはゆっくり考えようと思います。初心者の質問にいいアドバイスをありがとうございます。しっかし、なんでやろ~。
No.1
- 回答日時:
コマンドラインから実行してるのであれば、
perl a.pl | more
みたいに、ページャにリダイレクトするのが一番手っ取り早いかと。
参考URL:http://journal.mycom.co.jp/special/msdos/028.html
この回答への補足
こんなプログラムです(段組みがひどいですが)
print "what?"; $what = <STDIN>; chomp($what);
open (IN, "file_a");
while (<IN>){
if($_=~/$what/){
print $_;
}}
close IN;
入力を待つためか、うまく |more が使えませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Windows 10 エクスプローラで希望の場所が表示できない 2 2023/06/29 15:19
- Excel(エクセル) Excelで、社外秘(閲覧のみ)と表示され、共有者が編集出来ないのですが 4 2023/06/20 17:54
- Perl Perlで特定文字列から特定文字列までを抜き出したい 4 2022/04/02 14:24
- Windows 10 フォルダ内の全ての画像を矢印キーでスライドできるようにしたい 1 2022/10/21 12:53
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- マウス・キーボード 不良表示キー(キーボード) 3 2022/04/27 10:53
- その他(プログラミング・Web制作) VScodeでpythonプログラムの関数を実行したい 2 2022/07/13 19:24
- Excel(エクセル) [クイックアクセスツールバー]の設定ファイルの格納場所について、 5 2023/04/21 14:43
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パールの-pオプションの値0777...
-
ラジオボタンが両方とも選択で...
-
チェックボックスの返す値
-
wordの数式について 定積分を書...
-
FORMのselectの選択肢を最初か...
-
「value」に2つの値をセットす...
-
【CGI】画像の表示の仕方【Mini...
-
ラジオボタンを選択済みにする...
-
VB.net データーグリッドビュー...
-
Error: No Recipient というエ...
-
iframeごとに戻るボタンを
-
INPUT TYPE
-
cgi-libを使って変数値渡しをし...
-
[HTML]プルダウンメニューの横...
-
Mechanizeにおけるボタンクリッ...
-
WEBページを強制的に横画面で見...
-
select値をhiddenのvalueに渡し...
-
フォーム入力後の確認画面表示...
-
別formのhidden項目を自form値...
-
買い物カゴの作成
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ディレクトリのファイル数取得
-
パールの-pオプションの値0777...
-
while繰り返し処理で買い物かご...
-
wait を使うのでしょうか?
-
自作のアクセスカウンタ
-
ファイルの出力先の指定
-
read関数で読み込んだ内容をフ...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
「value」に2つの値をセットす...
-
チェックボックスの返す値
-
INPUT TYPE
-
select値をhiddenのvalueに渡し...
-
FORMのselectの選択肢を最初か...
-
WEBページを強制的に横画面で見...
-
[HTML]プルダウンメニューの横...
-
VB.net データーグリッドビュー...
-
VB初心者。小数点以下の表示で...
-
別formのhidden項目を自form値...
-
チェックボックスとセレクトボ...
おすすめ情報