Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change selected values in text file using Perl

Tags:

perl

I need help to write some Perl code to replace some selected values in text files. Below is the sample of my text files. I want to replace the value of "end" to a new value in the date format YYYYMMDD, increase the key value by 1, and the rest should remain the same.

Source File:

    server=host1
    network=eth0
    start=YYYYMMDD
    end=YYYYMMDD
    key=34

If I change the "end" value to yyyymmdd (new date) and "key" to +1. the output result should be:

    server=host1
    network=eth0
    start=YYYYMMDD
    end=yyyymmdd
    key=35

Please suggest a solution for this.

like image 798
Space Avatar asked Dec 03 '25 00:12

Space


1 Answers

*edit: looks like I misread the question new solution:

#!/usr/bin/perl
$filename = "a.txt";
$tempfile = "b.txt";
$newdate = "whatever";

open(IS, $filename);
open(OS, ">$tempfile");
while(<IS>)
{
    if($_ =~ /^end=(.*)$/){
        print OS "end=$newdate\n";
    } elsif ($_ =~ /^key=(.*)$/) {
        print OS "key=".($1+1)."\n";
    } else {
        print OS $_;
    }
}
close(IS);
close(OS);
unlink($filename);
rename($tempfile, $filename);
like image 119
proto-n Avatar answered Dec 05 '25 15:12

proto-n



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!