• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ディレクトリ内のテキストファイルに対する同一処理)

Linux環境でのテキストファイルの処理方法

このQ&Aのポイント
  • Linux環境でのテキストファイルの処理方法について質問があります。ディレクトリ内のテキストファイルに対して同一の処理を行い、出力を別のディレクトリに保存するプログラムを作成しています。
  • 具体的には、ディレクトリ内の複数のテキストファイルに対して、カンマで区切られた数字列を分割し、左から2番目の数に1を引いた結果を出力するプログラムです。
  • しかし、プログラムを実行しても元のファイルから計算がされていないようで、どこが間違っているのかわかりません。おすすめの修正方法を教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • aigaion
  • ベストアンサー率47% (287/608)
回答No.2

my @file = <FILE>; close(FILE); foreach $line (@file) {  my ($a,$b,$c,$d,$e,$f,$g,$h) = split(/,/, $line);  my $b = $b - 1;  $line = "$a,$b,$c,$d,$e,$f,$g,$h"; #ここ } やるならこうですね。 splitの返り値は元の文字列に関係なくコピーされた値なのでので その値を格納した$bを変えただけでは元の文字列は変更しただけでは不十分です。 変更後の値を元の文字列に代入してやる必要があります。

oswll
質問者

お礼

ものすごく早いご対応ありがとうございました。大変感謝しております。 ご回答くださったaigaion様、shippo_ppk様にお礼を申し上げます。

その他の回答 (2)

  • aigaion
  • ベストアンサー率47% (287/608)
回答No.3

>その値を格納した$bを変えただけでは元の文字列は変更しただけでは不十分です。 その値を格納した$bを変えただけでは元の文字列は変更されないので不十分です。 脳内補完ヨロ

回答No.1

@file の要素を変更しているコードが見当たりません。

関連するQ&A