![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
perlでファイル内を検索して読み込みを行いたいのですが
どのようにすればよいでしょうか。
環境は、Solaris10
以下のようなファイル(test.txt)から
#start1~#endの間にある、”01:”で始まっている値をすべて取得する。
複数行になっている場合、カンマで1つにする。
”01”ではじまっていないものは無視する。#などで始まっているものも。
●ファイル:test.txt
#start1
01:abc,aaa,bbb
01:1234
#01;a1,b1,c1
02:(省略)
03:(省略)
#end
#start2
01:(省略)
02:(省略)
03:(省略)
#end
#start4
01:(省略)
02:(省略)
03:(省略)
#end
●結果
abc,aaa,bbb,1234
として読み込みたい。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No.1 です。
すみません。PHPコードで回答しちゃいました。
あらためて回答します。
open(TXT,"file2.txt");
while(<TXT>){
last if($start&&/^#end/);
if(/^#start1/){$start=1;next}
next if(!$start);
if(/^01:(.+)/){
if($match&&$match!~/,$/){$match.=','}
$match.=$1;
}
}
close TXT;
print $match;
No.1
- 回答日時:
$fh=fopen("text.txt","rb");
while($line=rtrim(fgets($fh))){
if($start&&$line=='#end')break;
if($line=='#start1'){$start=1;continue;}
if(!$start)continue;
if(preg_match("/^01:(.+)/",$line,$str)){
if($match&&!preg_match("/,$/",$match))$match.=',';
$match.=$str[1];
}
}
fclose($fh);
print $match;
この回答への補足
ありがとうございます。
試してみたのですが、エラーがでます。
Bareword found where operator expected at ./tst.pl line 7, near ")break"
(Missing operator before break?)
Scalar found where operator expected at ./tst.pl line 14, near ")$match"
(Missing operator before $match?)
syntax error at ./tst.pl line 7, near ")break"
syntax error at ./tst.pl line 9, near ";continue"
syntax error at ./tst.pl line 11, near ")continue"
syntax error at ./tst.pl line 14, near ")$match"
syntax error at ./tst.pl line 18, near "}"
Execution of ./tst.pl aborted due to compilation errors.
#!/usr/bin/perl
#
$fh=fopen("test.txt","rb");
while($line=rtrim(fgets($fh))) {
if($start&&$line=='#end')break;
if($line=='#start1'){$start=1;continue;}
if(!$start)continue;
if(preg_match("/^01:(.+)/",$line,$str)) {
if($match&&!preg_match("/,$/",$match))$match.=',';
$match.=$str[1];
}
}
fclose($fh);
print $match;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Perl Perlで特定文字列から特定文字列までを抜き出したい 4 2022/04/02 14:24
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Perl Perlでファイルの末尾から指定文字列を検索してファイルに吐き出したい 4 2022/04/04 16:15
- Visual Basic(VBA) Excel VBA ファイル取得について フォルダの中に、ファイル名“会議“を含むファイルが1つまた 9 2022/10/12 01:18
- C言語・C++・C# C言語のファイル入力が分かりません 2 2022/05/22 06:35
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- 英語 関係副詞または先行詞の省略、について ①限定的用法では関係副詞は常に省略できる。ただし、非限定的用法 1 2022/12/09 19:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
ファイルをディレクトリ分配の...
-
openした後、closeしないでプロ...
-
perlのプログラミング 部分入れ...
-
Perlのエラーについてご教授く...
-
画像が表示でnull; this.src
-
perlプログラミング 空白行削除
-
Perlで特定文字列から特定文字...
-
ラズベリーパイ初心者です。 ラ...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
openした後、closeしないでプロ...
-
テキストファイルで提出とは?
-
INDIRECT 横に再度抽出したい
-
Perlで特定文字列から特定文字...
-
perlをバージョンアップしたら...
-
Wallpaper Engineでおすすめの...
-
arduino の割り込み処理について
-
アルファベットに付いて質問し...
-
Strawberry Perl for Windows ...
-
Perlで時間の計算
-
このファイルを開く方法で困っ...
-
TeraPadエディターの操作方法に...
-
cgiでサーバーにファイルを追加...
-
フローチャート 九九
-
LinuxにおいてのPerlのプログラ...
-
perl 初等プログラミングについて
-
Perlのエラーについてご教授く...
-
こんにちは ブラケッツでプログ...
-
bashスクリプト
-
perlプログラミング 空白行削除
おすすめ情報