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.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() で作ってます。
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カッコ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- その他(プログラミング・Web制作) python 3.10で 同じlistに同じ構文で同じデータ代入した結果が異なる現象発生 7 2022/06/18 11:08
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- PDF acrobatでwordファイルをpdfに変換すると文字化けする 3 2023/02/10 09:31
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Visual Basic(VBA) リストボックスに表示されたファイルを削除したい 1 2023/04/19 12:02
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
while(<ハンドラ>) {} で行数を...
-
AutoCADのスクリプト
-
オープンしたファイルで行の連結
-
cgiの投票回数制限設定について...
-
Perl で syntax error
-
perlで、文字列の中から何番目...
-
perlのflock関数でロックをかけ...
-
文字列をカウントする方法
-
ファイル全てを .xlsm に変更し...
-
一定時間が経過したフォルダの削除
-
csvファイルの横方向への改行に...
-
画像アップロード機能を追加し...
-
batファイルでrenameができませ...
-
while文がうまく動かない
-
VBAでCSVファイルの特定行を書...
-
MATLABのm-fileについて
-
配列のサイズを動的に拡張
-
ディレクトリのファイル作成を...
-
ANSI Cでファイル名、ディレク...
-
VB6.0でDB接続する際に切断時の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
close()で例外が投げられる理由
-
perlのflock関数でロックをかけ...
-
改行コードが勝手に
-
巨大ファイルの行をを逆順に並...
-
オープンしたファイルで行の連結
-
Perl で syntax error
-
where can I buy snowbord in t...
-
open中のファイルをrename
-
perlを用いた特定文字列間の抽...
-
Perlで他サイトの情報を取得し...
-
die関数のエラー出力先について
-
ハッシュにファイルハンドル
-
サブスクリプトとのファイルハ...
-
テキストファイルの本文中に行...
-
perlで大容量CSVのsort方法につ...
-
フォルダが開かなくなりました。
-
AutoCADのスクリプト
-
ジョブショップスケジューリング
-
バッチファイルの作り方(CSV→...
-
awkスクリプトでダブルクォーテ...
おすすめ情報