
3つのファイル(list1,list2,list3)を順番に読み込んで
ファイルの中のGoodという文字をBadにして
新たにlist1_new、list2_new、list_3new
という名前のファイルに書き込みたいのですが
やり方がわかりません。 下記のプログラムを
ベースに教えていただけませんか?
#! /usr/local/bin/perl
foreach LIST ( \
list1 \
list2 \
list3 \
)
open(FILE , "${LIST}" ) || die Damedame;
while (<FILE>) {
s/Good/Bad/g ;
print;
}
No.1ベストアンサー
- 回答日時:
foreach $LIST ( # $付ける
list1, # カンマ
list2,
list3
)
{ # foreachカッコ
open(FILE2 , ">${LIST}_new" ) or die Damedame2; # 出力用ファイルオープン
open(FILE , "${LIST}" ) or die Damedame;
while (<FILE>) {
s/Good/Bad/g ;
print FILE2 $_; # 出力処理
}
close(FILE); # クローズ
close(FILE2); # クローズ
} # foreachカッコ
No.2
- 回答日時:
古いファイルに拡張子をつけて、内容を更新するというのじゃだめですか?
それでよいなら
perl -pi.bak -e 's/GOOD/BAD/g' 対象のファイル
とかですんじゃうんですが。
_newをつけるのがどうしても良いのだというなら
use strict;
foreach my $file qw(list1 list2 list3) {
my $newfile = $file . "_new";
my $ofh;
my $ifh;
unless (open($ifh, '<', $file)) {
warn "can't open file $file $!\n";
next;
}
unless (open($ofh, '>', $newfile)) {
warn "can't open file $newfile $!\n";
close $ifh;
next;
}
while (<$ifh>) {
s/GOOD/BAD/og;
print $ofh $_;
}
close $ofh;
close $ifh;
}
こんな感じで。
どれかのファイルで失敗しても後続のファイルを処理するようにしてます。
あと bareword はあまり使うべきでないのでリストは qw() で作ってます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルの本文中に行...
-
C言語で特定の行を抽出する方法...
-
Windowsで複数のファイルを同じ...
-
cookieを必要とするページへのLWP
-
perlでcsvファイルを読む(ダブ...
-
MacOSXでのPerlプログラミング
-
エクセルVBA コードが同じでも...
-
window.open でのファイル指定方法
-
vba dir の相対パス
-
sedの動作
-
VBAでCSVファイルを途中行まで...
-
MATLABのm-fileについて
-
標準入出力 パイプ
-
Apache2.2環境でPerlで参照した...
-
文字コードの変換(Shift-JISか...
-
ファイル名を複数個配列で確保...
-
エラーログ「\\x8ew\\x92\\xe8...
-
C言語でのファイルのデータ更...
-
教えて!perlから.exeファイル...
-
Data::Dumper;でダンプ後表示し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
close()で例外が投げられる理由
-
where can I buy snowbord in t...
-
パイプをopenして/usr/bin/grep...
-
perlで複数のファイルの処理に...
-
perlのflock関数でロックをかけ...
-
ファイルから読み込んだ文字を
-
ファイルのロックについて
-
Perlでログファイルからユーザ...
-
perlを用いた特定文字列間の抽...
-
PICでFatFsでオープンした内容...
-
テキストファイルの本文中に行...
-
マッチ演算子に変数をはさんで...
-
perlで大容量CSVのsort方法につ...
-
open中のファイルをrename
-
perlでのスキンの利用方法
-
Perlのファイルオープン時...
-
Perlでハードウェア制御?
-
変数を使ってファイル名を自分...
-
ログに記録又は読み出す際、最...
-
パスワードを外部ファイルから...
おすすめ情報