皆さんのお知恵をお貸し頂ければ幸いです。
Perlで以下のようなことをしたいと考えています。
例えば、次のようなテキストファイルがあったとします。
example.log
==================================
aaaa
dada START
hogehoge
test
okok
perl
dodo END
script
==================================
上記ファイルを読み込んで、「START」から「END」が含まれた間の行だけ抜き出したいのです。
イメージとしては、読み込んだファイルを一行づつ読ませ、キーワード「START」が現れたらそこでフラグを立て、それ以降の行を表示し、キーワード「END」が現れた時点で表示を止めるという処理になるのかな?と思っています。
このような場合、どういう風にすればいいのでしょうか?
恐れ入りますが、ご教授頂ければ幸いです。
それでは、どうぞよろしくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
私だったら、まさに
> 読み込んだファイルを一行づつ読ませ
> キーワード「START」が現れたらそこでフラグを立て
> それ以降の行を表示し
> キーワード「END」が現れた時点で表示を止める
というプログラムにします。
No.2
- 回答日時:
まずは思いついた内容をコード化して検証する。
それで躓いたなら質問を立ててみた方が宜しかったのでは?
最初の『ファイルの読み込み』からわからないって訳ではないのでしょ?
No.3
- 回答日時:
目印行も出力するなら、
perl -n -e 'print $_ if /START/../END/' filename.txt
しないなら、
perl -n -e 'print $_ if (/START/../END/) && !/START|END/' filename.txt
No.4
- 回答日時:
以下のようにしてください。
STARTとENDの行は出力しません。
open(INFILE,"example.log");
$flag = 0;
while(<INFILE>){
if ($flag == 0){
if ($_ =~ m/\sSTART$/){
$flag = 1;
}
}else{
if ($_ =~ m/\sEND$/){
$flag = 0;
next;
}
print $_;
}
}
close INFILE;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl Perlでファイルの末尾から指定文字列を検索してファイルに吐き出したい 4 2022/04/04 16:15
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- その他(プログラミング・Web制作) 【python】Excelファイルを読み込む際の日付の表示形式を任意にする 2 2022/11/24 14:21
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
RSS自動生成で文字化け
-
perlのエディタでおすすめを教...
-
VBAでCSVファイルを途中行まで...
-
バッチファイルの作り方(CSV→...
-
close()で例外が投げられる理由
-
batファイルでrenameができませ...
-
VBAでCSVファイルの特定行を書...
-
openした後、closeしないでプロ...
-
VBAコードを張り付け後のエクセ...
-
ListBoxのデータを高速でファイ...
-
JavaでCSVファイルを高速に読む...
-
至急お願いします。C言語で.img...
-
タブの色を変更する方法
-
vba dir の相対パス
-
while(<ハンドラ>) {} で行数を...
-
perlをwindows環境でshift-jis...
-
awkスクリプトでダブルクォーテ...
-
unixでのファイルロックの方法...
-
Perlで空白行を削除
-
教えて!perlから.exeファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlで特定文字列から特定文字...
-
requireで同じライブラリを複数...
-
perlのエディタでおすすめを教...
-
unixでテキストファイルの編集...
-
ファイルロックの仕方
-
perlのgrepで要素を返す値がお...
-
バッチファイルの作り方(CSV→...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
DOSコマンドで、標準出力を出力...
-
ExcelをCSV書き出す場合のシー...
-
openした後、closeしないでプロ...
-
close()で例外が投げられる理由
-
batファイルでrenameができませ...
-
VBAでCSVファイルを途中行まで...
-
window.open でのファイル指定方法
-
VBAで巨大なファイルの途中から...
-
Perlで特定行から特定行までを...
-
ReadLineでの読み出し行を指定する
-
エクセルVBAで素数だけを出力す...
おすすめ情報