私は今、私は変数の値を更新したいファイルがあります。これを行う方法は? ファイル内容:この中に今Perlのファイルテキストを編集するには
<Config>
NUM1 = 8
AMV1 = 8
AMV2 = 8
DEF2 = 8
DGF = 8
</Config>
私たちはPerlでこれを行うことができますどのようにNUM1
の値を変更したいです。
私は今、私は変数の値を更新したいファイルがあります。これを行う方法は? ファイル内容:この中に今Perlのファイルテキストを編集するには
<Config>
NUM1 = 8
AMV1 = 8
AMV2 = 8
DEF2 = 8
DGF = 8
</Config>
私たちはPerlでこれを行うことができますどのようにNUM1
の値を変更したいです。
あなたはワンライナーを使用して、コマンドラインから直接それを行うことができます。
perl -i~ -pe 's/^(\s*NUM1)=.*/$1=NewValue/' config-file
-i~
がチルダでバックアップを残して、「場所に」ファイルを変更するには、-p
読み取りs///
は代用です。()
正規表現にキャプチャグループを作成すると、 update-config
に保存 #!/usr/bin/perl
use warnings;
use strict;
while (<>) {
s/^(\s*NUM1)=.*/$1=NewValue/;
print;
}
、update-config config-file > new-config
として実行:最初のキャプチャグループは、スクリプトで$1
として交換部品から参照することができ、あなたは実際のコードで-p
を置き換える追加する必要があります。
または、ファイルを自分のも、開口部を処理する場合:
#!/usr/bin/perl
use warnings;
use strict;
my $filename = 'config-file';
my $newfile = "$filename.new";
my $backup = "$filename~";
open my $IN, '<', $filename or die $!;
open my $OUT, '>', $newfile or die $!;
while (<$IN>) {
s/^(\s*NUM1)=.*/$1=NewValue/;
print {$OUT} $_;
}
close $OUT or die $!;
rename $filename, $backup or die $!;
rename $newfile, $filename or die $!;
あなたが知っている、それはStackOverflowのが動作するようになっているか、実際にはありません。あなたの仕様にコードを書くだけではありません。一般的に、私たちはあなた自身で問題を解決するために何らかの努力をしてほしいと思っており、あなたが持っている特定の問題についてお手伝いします。 –
幸いにも、このコードはすでに書かれています。 'Config :: General'はこのファイル形式をうまく読み込み、' save_file'メソッドが書き込みを行います。 – tjd
[何を試してみましたか?](http://whathaveyoutried.com) あなたの質問は、あなたが書いたコードを表示するために編集してください。 どこにいらっしゃいましたら、 の問題を解決することができます。 [ask]も読んでください。 –