2つのテキストファイルがあります。

1つめは

a1はa2
b1はb2
c1はc3

となっています。
2つめはCSVファイルで

a2,a3
b2,b3
c2,c3

となっています。
ファイル2を読み込んでファイル1のデータを連続して置き換えたいのですが良い方法やツールはないでしょうか。
よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/02/07 12:01:40
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:shidho No.1

回答回数86ベストアンサー獲得回数15

ポイント100pt

http://www.forest.impress.co.jp/lib/stdy/program/progdevenv/acti...

をインストールして、以下のスクリプトを置換するファイルのあるフォルダに置いて、

perl easy_replace.pl

として実行します。

  • ここからコピペ

# easy_replace.pl

# CSVを簡易的に読み込む

open FILE,"file2.csv";

my %replace_words;

while(my $line = <FILE>){

my ($from,$to) = split(",",$line);

$replace_words{$from}= $to;

}

close(FILE);

# 置換する対象のファイルを読み込む

open FILE,"file1.txt";

my @files = <FILE>;

close FILE;

$file = join("",@files);

# 置換する

foreach my $from (keys $replace_words){

my $to = $replace_words{$from};

$file =~ s/\Q$from\e/$to/g;

}

# 書き出す

open FILE,">file1_new.txt";

print FILE $file;

close FILE;

exit;

  • ここまでコピペ

CSVの内容を作り直していいのなら、

http://www.forest.impress.co.jp/lib/sys/file/filesearch/repl_ace...

これが使えるかと思うんですがどうでしょう。

id:Sprint

ありがとうございます。Perlですか、やっぱりこういうの覚えないといけないのですかね・・・。

そのご自分でちょこちょこみていたらterapadのページで連続置換君というのがあるのを知りました。

で、それを調べていたらベクターにカテゴリがありました(汗

http://www.vector.co.jp/vpack/filearea/win/util/text/conv/

ごめんなさい。感謝です。

2008/02/07 12:01:28

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません